> ## Documentation Index
> Fetch the complete documentation index at: https://praison.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Development Setup

> Set up a PraisonAI development environment with uv

Set up a local PraisonAI development environment using `uv` — the fast Python package manager.

```mermaid theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
graph LR
    subgraph "Contributor Workflow"
        UV[📦 Install uv] --> Clone[📂 Clone Repo]
        Clone --> Install[⚙️ Install Deps]
        Install --> Dev[🚀 Develop]
        Dev --> Release[📤 Release]
    end

    classDef step fill:#6366F1,stroke:#7C90A0,color:#fff
    classDef action fill:#10B981,stroke:#7C90A0,color:#fff

    class UV,Clone,Install step
    class Dev,Release action
```

## Quick Start

<Steps>
  <Step title="Install uv">
    ```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
    pip install uv
    ```
  </Step>

  <Step title="Clone and Install">
    ```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
    git clone https://github.com/MervinPraison/PraisonAI.git
    cd PraisonAI

    # Install base dependencies
    uv pip install -r pyproject.toml
    ```

    <Note>
      The `src/` directory now contains three sibling packages: `praisonai-agents/` (SDK), `praisonai-code/` (agentic terminal CLI — introduced in scaffold form at [PR #2539](https://github.com/MervinPraison/PraisonAI/pull/2539) as step C0 of the migration in [issue #2512](https://github.com/MervinPraison/PraisonAI/issues/2512)), and `praisonai/` (main user-facing wrapper). Install with `pip install -e src/praisonai` — this pulls in `praisonai-code` and `praisonai-agents` automatically via the workspace path deps. See [praisonai-code Migration](/docs/guides/praisonai-code-migration) for the full picture.
    </Note>
  </Step>

  <Step title="Install with Extras">
    ```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
    # Single extra
    uv pip install -r pyproject.toml --extra code

    # Multiple extras
    uv pip install -r pyproject.toml --extra "crewai,autogen"
    ```
  </Step>
</Steps>

***

## Available Extras

| Extra       | What It Includes                                                                                                             |
| ----------- | ---------------------------------------------------------------------------------------------------------------------------- |
| `code`      | Code generation and analysis tools                                                                                           |
| `chat`      | Chainlit-based chat interface                                                                                                |
| `crewai`    | CrewAI framework integration                                                                                                 |
| `autogen`   | AG2 (AutoGen) framework integration                                                                                          |
| `langgraph` | LangGraph framework integration (probe + doctor recognition; also install `praisonai-frameworks[langgraph]` for the adapter) |
| `tools`     | All built-in tool packages                                                                                                   |
| `bot`       | Discord/Telegram/Slack bot support                                                                                           |
| `os`        | Production-ready OS-level dependencies                                                                                       |

***

## Bump and Release

<Warning>
  Release commands modify package versions and publish to PyPI. Only maintainers with publish credentials should run these.
</Warning>

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
# Bump version and prepare release
python src/praisonai/scripts/bump_and_release.py 2.2.99

# With praisonaiagents dependency update
python src/praisonai/scripts/bump_and_release.py 2.2.99 --agents 0.0.169

# Publish to PyPI
cd src/praisonai && uv publish
```

***

## Project Structure

```
praisonai-package/
├── src/
│   ├── praisonai/           # Main user-facing CLI package (pip install praisonai)
│   ├── praisonai-code/      # Agentic terminal CLI — extracted from praisonai (incremental C0–C6)
│   ├── praisonai-agents/    # Agent SDK (praisonaiagents)
│   ├── praisonai-ts/        # TypeScript SDK
│   └── praisonai-rust/      # Rust SDK
├── examples/                # Example scripts
└── tests/                   # Test suites
```

***

## praisonai-code Sibling Package

`praisonai-code` hosts the **agentic terminal CLI** (`run`, `chat`, `code`, warm runtime, CLI backends) as an internal sibling package. `praisonai` remains the user-facing install; `praisonai-code` is not published standalone to PyPI during migration.

**Status:** C0 scaffold merged in [PraisonAI#2520](https://github.com/MervinPraison/PraisonAI/pull/2520). C1 moved `runtime/` and `cli_backends/` into `praisonai_code` in [PraisonAI#2523](https://github.com/MervinPraison/PraisonAI/pull/2523); PEP 562 shims keep the old import paths working. See the [praisonai-code migration guide](/docs/guides/praisonai-code-migration) for the full C0–C6 roadmap and shim behaviour.

### Dependency Rules

```
praisonai (main)  →  depends on  praisonai-code
praisonai-code    →  depends on  praisonaiagents (core SDK)
```

```mermaid theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
graph LR
    Main[📦 praisonai<br/>user-facing install] --> Code[💻 praisonai-code<br/>agentic terminal CLI]
    Code --> Agents[🤖 praisonaiagents<br/>agent SDK]

    classDef main fill:#8B0000,stroke:#7C90A0,color:#fff
    classDef code fill:#189AB4,stroke:#7C90A0,color:#fff
    classDef sdk fill:#10B981,stroke:#7C90A0,color:#fff

    class Main main
    class Code code
    class Agents sdk
```

### Dev Install

<Steps>
  <Step title="Install the sibling package in editable mode">
    ```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
    pip install -e src/praisonai-code
    ```
  </Step>

  <Step title="Verify the install">
    ```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
    python -c "import praisonai_code; print(praisonai_code.__version__)"
    # → 0.0.1
    ```
  </Step>
</Steps>

### Migration Plan (C0–C6)

Track upstream progress in the [praisonai-code migration guide](/docs/guides/praisonai-code-migration) and [PraisonAI#2512](https://github.com/MervinPraison/PraisonAI/issues/2512).

| Step   | Scope                                                    | Status                                                                    |
| ------ | -------------------------------------------------------- | ------------------------------------------------------------------------- |
| **C0** | Scaffold (this)                                          | ✅ Merged in [#2520](https://github.com/MervinPraison/PraisonAI/pull/2520) |
| C1     | `runtime/` + `cli_backends/`                             | ✅ Merged in [#2523](https://github.com/MervinPraison/PraisonAI/pull/2523) |
| C2     | `interactive/`, `execution/`, `ui/`, `output/`, `state/` | Tracking                                                                  |
| C3     | Agentic commands (80 files)                              | Tracking                                                                  |
| C4     | Agentic features (158 files)                             | Tracking                                                                  |
| C5     | `main.py`, `app.py`, config/session/utils + shims        | Tracking                                                                  |
| C6     | Integration gate                                         | Tracking                                                                  |

<Note>
  Users continue to `pip install praisonai` and run `praisonai [TASK]`. From C1 onward, `from praisonai.runtime import …` and `from praisonai.cli_backends import …` forward to `praisonai_code` via PEP 562 shims; later C steps add shims for the rest of the agentic CLI. Details: [praisonai-code migration guide](/docs/guides/praisonai-code-migration).
</Note>

<Warning>
  During C1–C5 migration, `praisonai-code` may still import selected symbols from the wrapper (for example `praisonai._registry` in `cli_backends/registry.py`). That deliberate trade-off is removed in later steps — see the migration note in `src/praisonai-code/README.md` on the monorepo.
</Warning>

***

## Related

<CardGroup cols={2}>
  <Card icon="terminal" href="/docs/developers/local-development">
    Local development and testing
  </Card>

  <Card icon="book" href="/docs/developers/reference-home">
    SDK reference documentation
  </Card>

  <Card icon="route" href="/docs/guides/praisonai-code-migration">
    praisonai-code migration (C0–C6)
  </Card>

  <Card icon="github" href="https://github.com/MervinPraison/PraisonAI/issues/2512">
    praisonai-code extraction (upstream tracking issue)
  </Card>
</CardGroup>
