Metadata-Version: 2.1
Name: crewplus-cli
Version: 0.1.2
Summary: Unified CLI framework for CrewPlus services
Author-Email: CrewPlus Team <team@crewplus.ai>
License: MIT
Requires-Python: >=3.11
Requires-Dist: typer>=0.15.1
Requires-Dist: importlib-metadata>=6.0.0; python_version < "3.12"
Description-Content-Type: text/markdown

# CrewPlus CLI

Unified command-line interface framework for CrewPlus services.

## Installation

pip install crewplus-cli

## Usage

The recommended workflow is to create a root directory for all your local plugins.

# 1. Create a workspace for your plugins
mkdir my-crew-plugins
cd my-crew-plugins

# 2. Scaffold a new extension inside your workspace
crewplus-cli create extension my-first-plugin --mode code

# 3. Run the agent, loading your new plugin
crewplus-cli server agent \\
  --local-extensions ./ \\
  --enable-plugins my_first_plugin

# View all available commands
crewplus-cli --help

## Architecture

`crewplus-cli` is a lightweight framework that discovers and loads commands from various CrewPlus service packages via Python entry points.

### For Service Developers

To register commands from your service package:

1. Create a CLI module in your service (e.g., `src/your_service/cli.py`)
2. Create a Typer app instance for your command group
3. Register it in your `pyproject.toml`:

[project.entry-points."crewplus.cli"]
server = "your_service.cli:server_group"Example CLI module:

import typer

server_group = typer.Typer(name="server", help="Server commands")

@server_group.command("start")
def start_server():
    """Start the server"""
    # Your implementation
    pass## Development

# Install in development mode
pip install -e .

# Run tests
pytest

## Deploy to PyPI

Clean Previous Build Artifacts:
Remove the `dist/`, `build/`, and `*.egg-info/` directories to ensure that no old files are included in the new build.

rm -rf dist build *.egg-info

### install deployment tool

pip install twine

### build package

python -m build

### Deploy to official PyPI

python -m twine upload dist/*
