Development Setup¶
System Requirements¶
| Component | Minimum Version | Notes |
|---|---|---|
| Python | 3.11 | Supports 3.11, 3.12 |
| Node.js | 24 | Dashboard frontend build |
| pnpm | 10 | Frontend package manager (pinned to 10.34.5 in package.json) |
| Git | 2.30+ | Version control |
Backend Environment¶
1. Clone the Repository¶
2. Create a Virtual Environment (Recommended)¶
3. Install Dependencies¶
Available extras:
| Extra | Purpose |
|---|---|
all |
All runtime optional deps (all Providers, vector store, TUI, etc.) |
dev |
ruff (pinned 0.15.12), pytest, pytest-asyncio, pytest-cov |
docs |
mkdocs-material, mkdocs-static-i18n |
openai |
OpenAI Provider only |
anthropic |
Anthropic Provider only |
bedrock |
AWS Bedrock Provider |
gemini |
Google Gemini Provider |
browser |
Playwright browser tool |
tui |
Textual terminal UI |
skills |
Built-in Skill dependencies |
4. Verify Installation¶
# Lint check
ruff check .
# Run tests
python -m pytest tests/ -v --cov
# Start the Agent (requires model configuration)
echo-agent --help
Frontend Environment¶
1. Install pnpm¶
# Using corepack (built into Node.js)
corepack enable
corepack prepare pnpm@10.34.5 --activate
# Or via npm
npm install -g pnpm@10.34.5
2. Install Frontend Dependencies¶
3. Development Mode¶
pnpm dev # Start Vite dev server (default http://localhost:5173)
pnpm build # Production build (output to web/dist/)
pnpm test --run # Run Vitest tests
IDE Configuration¶
VS Code Recommended Extensions¶
{
"recommendations": [
"charliermarsh.ruff",
"ms-python.python",
"bradlc.vscode-tailwindcss",
"dbaeumer.vscode-eslint"
]
}
VS Code Settings¶
{
"python.defaultInterpreterPath": ".venv/bin/python",
"[python]": {
"editor.defaultFormatter": "charliermarsh.ruff",
"editor.formatOnSave": true
},
"ruff.lineLength": 120
}
Environment Variables¶
Common environment variables for development:
# Model API Keys (configure as needed)
export OPENAI_API_KEY="sk-..."
export ANTHROPIC_API_KEY="sk-ant-..."
export GOOGLE_API_KEY="..."
# Optional: AWS Bedrock
export AWS_ACCESS_KEY_ID="..."
export AWS_SECRET_ACCESS_KEY="..."
export AWS_REGION="us-east-1"
The repository ships no .env.example template: credentials normally go through the echo-agent setup wizard and the configuration file, with environment variables acting as overrides. For the full list, see the environment variables reference.
Troubleshooting¶
fastembed installation failure¶
fastembed depends on ONNX Runtime, which may require compilation on some platforms. If your work doesn't involve vector storage:
Playwright browsers not installed¶
ruff version mismatch¶
The project pins ruff==0.15.12 and CI uses the same version. Do not upgrade independently: