depression
AI agent for everything — development, deployment, and analysis.
A terminal-native agentic AI assistant. Sits in your terminal as a Textual TUI and drives a Plan + Build dual-agent system with full tool access, MCP support, and visual permission prompts.
Features
- Textual TUI — interactive terminal UI with plan/build mode switching (
Ctrl+P), AWS credentials panel, thinking indicator, todo panel, live tool-call cards, and diff view - Dual-Agent Architecture — Plan agent (read-only analysis) + Build agent (full tool execution)
- User-Configured LLM Runtime — connect any OpenAI-compatible endpoint at runtime (base URL + API key + model); built-in provider adapters for Anthropic, Groq, NVIDIA, and local models
- Tool Calling — terminal, filesystem, git, patch, search, web, todo, process, browser automation (Playwright), AWS
- MCP Support — Model Context Protocol client with multiple servers
- Session Management — persistent sessions stored in SQLite; resume with
/session - Snapshot / Undo — git-stash-based snapshots for safe experimentation
- Subagents & Plugins — parallel task execution and
@syntaxsubagents, plugin loader - Permission System — per-tool approval rules with interactive modal prompts
Installation
git clone https://github.com/rnaveenpatil/depression.ai.git
cd depression.ai
pip install -e .
Optional extras:
# Browser automation tool (Playwright)
pip install -e ".[browser]"
playwright install chromium
# Development (pytest, ruff, mypy)
pip install -e ".[dev]"
Quick Start
# Launch the TUI
depression
# Equivalent forms
python -m agent.tui
python -m agent.tui.run
Before first use you must connect an LLM endpoint (see Runtime LLM Configuration below). The TUI also offers an LLM CONNECTION panel to set base URL, API key, and model interactively.
Runtime LLM Configuration
The agent is deliberately provider-agnostic: there are no hardcoded API keys.
Configure a runtime provider via environment variables or the in-TUI connection
panel. Copy .env.example to .env:
# User runtime LLM connection (never commit real secrets)
DEPRESSION_PROVIDER=custom
DEPRESSION_BASE_URL=https://api.example.com/v1
DEPRESSION_API_KEY=
DEPRESSION_MODEL=
# AWS credentials entered by /aws panel
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=ap-south-1
Configuration
Layered config (project overrides user): .agent/config.json in your project,
or ~/.agent/config.json globally.
{
"llm": {
"provider": "custom",
"model": "your-model-id"
}
}
Write a default config with depression --init-config (CLI bootstrap) or edit
.agent/config.json directly.
Slash Commands
Available inside the TUI input box:
| Command | Description |
|---|---|
/help |
Show help |
/plan |
Switch to Plan mode (read-only analysis) |
/build |
Switch to Build mode (full execution) |
/auto |
Automatic Plan -> Build loop |
/snapshot [message] |
Create a git-stash snapshot |
/undo |
Restore the last snapshot |
/model · /provider |
View / switch model or provider |
/session |
Show / resume sessions |
/compact |
Compact conversation context |
/tools · /permissions |
List tools and permission rules |
/plugins |
Load plugins |
/metrics · /cost · /tokens |
Usage metrics and cost |
/config · /set |
View / set config values |
/exit |
Quit (also Ctrl+Q) |
TUI
- Mode toggle:
Ctrl+Pcycles Plan → Build - Permissions: tool requests surface as interactive modal prompts (accept / deny)
- AWS panel: manage AWS credentials from inside the UI
- Live panes: thinking indicator, todo list, tool-call cards, diff view, sidebar
CLI Flags
The depression entry point parses the following flags (used in CLI bootstrap
and overridable before the TUI starts):
depression -p /path/to/project # project directory
depression -m MODEL # override model
depression --provider PROVIDER # override provider
depression --yolo # auto-approve all tool calls
depression --session <id> # resume session
depression --new-session # force a fresh session
depression --max-turns N # agent loop limit
depression --no-mcp # disable MCP
depression -v / -q # verbose / quiet
depression --skip-tui # (reserved) CLI-only mode
Project Structure
src/
└── agent/
├── agent/ # Plan + Build dual-agent orchestration, planner, loop
├── cli/ # Classic CLI bootstrap (argparse, prompt-toolkit UI, slash commands)
├── config/ # Layered configuration loader
├── context/ # Context manager, compaction, file indexing
├── llm/ # Runtime LLM registry + provider adapters, rate limiter
├── mcp/ # Model Context Protocol client + AWS config
├── permissions/ # Tool permission policy & approval
├── plugins/ # Plugin loader (builtin)
├── project/ # Workspace management
├── session/ # Session persistence
├── storage/ # SQLite database + cache
├── tools/ # Built-in tools (terminal, git, filesystem, web, browser, AWS, ...)
├── tui/ # Textual terminal UI (app, widgets, theme)
└── utils/ # Logging, platform, env helpers, redaction
Development
pip install -e ".[dev]"
pytest # run test suite
ruff check src/ # lint
ruff format --check src/ # formatting
mypy src/ # type checking
License
ISC License.
Metadata
Release files for depression.ai 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| depression_ai-1.0.0.tar.gz | 268.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| depression_ai-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 575.6 kB
Release files / depression_ai-1.0.0.tar.gz
| Download URL | depression_ai-1.0.0.tar.gz |
|---|---|
| Size | 268.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0c7804c745c38ab0ff069910f1b7b53be061bbc7f505f5ee1905a7dbf913ce95
|
|
BLAKE2b-256 checksum How to use checksums |
d83adbe63115c84a814f773f05307209b66b5bb15dc7cf528d6a57a156074d91
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / depression_ai-1.0.0-py3-none-any.whl
| Download URL | depression_ai-1.0.0-py3-none-any.whl |
|---|---|
| Size | 307.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ce6ef57b6a5f78fa8d8e1dde5760ebcf9d452cd6dbf5d0c1870fe37f3e74d710
|
|
BLAKE2b-256 checksum How to use checksums |
8cc85a421a1eebaa82bed05851a9a1885ad947b764f243a9f444c89f612faab4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|