Orchid CLI — command-line interface for the Orchid agent framework
Project description
Orchid CLI
Command-line interface for the Orchid multi-agent AI framework.
Provides terminal access to all chat operations, configuration validation, RAG indexing, and Claude Code skill generation. Mirrors the full functionality of orchid-api but runs locally with no server, Docker, or external database required (defaults to SQLite).
Installation
pip install orchid-ai orchid-cli
The orchid command is available after installation.
Quick Start
# Validate config:
orchid config validate agents.yaml
# Start an interactive chat session:
orchid chat interactive -c orchid.yml
# Send a single message:
orchid chat create -c orchid.yml -t "My Chat"
orchid chat send <chat_id> "Hello!" -c orchid.yml
Commands
Chat Management
# Create a new chat session
orchid chat create -c orchid.yml -t "My Chat Title"
# List all chat sessions
orchid chat list -c orchid.yml
# Show message history
orchid chat history <chat_id> -c orchid.yml
orchid chat history <chat_id> -c orchid.yml --limit 10
# Rename a chat
orchid chat rename <chat_id> "New Title" -c orchid.yml
# Share a chat (promote RAG data to user scope)
orchid chat share <chat_id> -c orchid.yml
# Delete a chat
orchid chat delete <chat_id> -c orchid.yml
orchid chat delete <chat_id> -c orchid.yml --force
Chat IDs support prefix matching -- type the first few characters of the UUID.
Messaging
# Send a single message and print the response
orchid chat send <chat_id> "What is LangGraph?" -c orchid.yml
# Override the LLM model
orchid chat send <chat_id> "Explain RAG" -c orchid.yml -m ollama/llama3.2
Interactive Mode
# Start a new interactive session
orchid chat interactive -c orchid.yml
# Resume an existing chat
orchid chat interactive <chat_id> -c orchid.yml
Slash commands available inside interactive mode:
| Command | Purpose |
|---|---|
/list |
List all chat sessions |
/switch <id> |
Switch to another chat |
/new [title] |
Create a new chat |
/history |
Show last 20 messages |
/rename <title> |
Rename current chat |
/quit |
Exit interactive mode |
Configuration
# Validate an agents.yaml file
orchid config validate path/to/agents.yaml
RAG Indexing
# Seed the vector store with static data
orchid index seed -c orchid.yml
# Seed for a specific tenant
orchid index seed -c orchid.yml --tenant my-tenant
Skill Generation (Claude Code)
Generate Claude Code skills from your Orchid agent configuration. Each agent and orchestrator skill becomes a Claude Code skill directory with a SKILL.md file.
# Generate skills for all agents and orchestrator skills
orchid skill generate path/to/agents.yaml
# Custom output directory
orchid skill generate path/to/agents.yaml -o .claude/skills
# Generate only specific agents/skills
orchid skill generate path/to/agents.yaml --include basketball,psychologist
# Overwrite existing skill directories
orchid skill generate path/to/agents.yaml --overwrite
# Create a zip archive for upload
orchid skill generate path/to/agents.yaml --zip
What gets converted:
| Orchid Concept | Claude Code Skill |
|---|---|
| Agent prompt | Core SKILL.md instructions |
| Agent description | Skill frontmatter description |
| Built-in tools | Executable Python scripts in scripts/ |
| Agent skills (workflows) | Step-by-step workflow instructions with script commands |
| Orchestrator skills | Multi-agent workflow skill |
| MCP servers | Noted as runtime-only (not portable) |
| RAG context | Noted as runtime-only (not portable) |
| Guardrails (global + per-agent) | Input/output rules section with actions and config |
Each agent skill includes a scripts/ folder with standalone Python scripts that Claude Code can execute directly. Tools from the same source module are grouped into a single script file with a CLI wrapper that accepts --arg value arguments.
Configuration
The --config (-c) flag points to an orchid.yml file:
llm:
model: ollama/llama3.2
agents:
config_path: agents.yaml
rag:
vector_backend: null # no Qdrant needed for basic usage
storage:
class: orchid.persistence.sqlite.SQLiteChatStorage
dsn: ~/.orchid/chats.db
Defaults
| Parameter | Default | Env Override |
|---|---|---|
| LLM model | ollama/llama3.2 |
LITELLM_MODEL |
| Vector backend | qdrant |
VECTOR_BACKEND |
| Storage class | orchid.persistence.sqlite.SQLiteChatStorage |
CHAT_STORAGE_CLASS |
| Storage DSN | ~/.orchid/chats.db |
CHAT_DB_DSN |
Chat data is stored in SQLite at ~/.orchid/chats.db by default. The directory is created automatically on first run.
Prerequisites
- Python 3.11+
- Ollama running locally (for local LLM models):
ollama pull llama3.2
Architecture
orchid_cli/
main.py Typer entry point -- registers sub-commands
bootstrap.py Shared startup: load config, build graph, init storage
commands/
chat.py Full CRUD + messaging + interactive mode
config.py Validate agents.yaml
index.py Seed RAG vector store
skill.py Generate Claude Code skills from agents.yaml
The CLI is a thin layer that calls orchid SDK functions and displays results via Rich.
Development
pip install -e ../orchid -e ".[dev]"
orchid config validate ../examples/basketball/agents.yaml
Testing
pip install -e ".[dev]"
pytest tests/ -x
ruff check orchid_cli/
License
MIT -- see LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file orchid_cli-1.0.3.tar.gz.
File metadata
- Download URL: orchid_cli-1.0.3.tar.gz
- Upload date:
- Size: 29.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
151b70b176a8cf35b27dd5e989e4fccdde3126ff370567a37250d569042d363d
|
|
| MD5 |
5d1ce908b749990596addcc0bf87e7ed
|
|
| BLAKE2b-256 |
ba5832ed86da5597fdb1af8c3e2d7d35beb00217ea2bf664aa11eb093be1668c
|
Provenance
The following attestation bundles were made for orchid_cli-1.0.3.tar.gz:
Publisher:
ci.yml on gadz82/orchid-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
orchid_cli-1.0.3.tar.gz -
Subject digest:
151b70b176a8cf35b27dd5e989e4fccdde3126ff370567a37250d569042d363d - Sigstore transparency entry: 1296310413
- Sigstore integration time:
-
Permalink:
gadz82/orchid-cli@30bbf3701d30aa422d86a2906a8546377b026248 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/gadz82
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@30bbf3701d30aa422d86a2906a8546377b026248 -
Trigger Event:
push
-
Statement type:
File details
Details for the file orchid_cli-1.0.3-py3-none-any.whl.
File metadata
- Download URL: orchid_cli-1.0.3-py3-none-any.whl
- Upload date:
- Size: 21.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d9366acf1af724de6a9d95eb26dba2b74d5cc5dce8e17cd45165c02cacebfe36
|
|
| MD5 |
397e6f807c281b22995d89e788235f0b
|
|
| BLAKE2b-256 |
7fb0411864b65565d50581551cfb2a92f537e11faa2507ce602d68f3abf1933d
|
Provenance
The following attestation bundles were made for orchid_cli-1.0.3-py3-none-any.whl:
Publisher:
ci.yml on gadz82/orchid-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
orchid_cli-1.0.3-py3-none-any.whl -
Subject digest:
d9366acf1af724de6a9d95eb26dba2b74d5cc5dce8e17cd45165c02cacebfe36 - Sigstore transparency entry: 1296310528
- Sigstore integration time:
-
Permalink:
gadz82/orchid-cli@30bbf3701d30aa422d86a2906a8546377b026248 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/gadz82
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@30bbf3701d30aa422d86a2906a8546377b026248 -
Trigger Event:
push
-
Statement type: