Skip to main content

Anteroom - your gateway to AI conversation

Project description

PyPI Version Python 3.10+ Coverage License

Anteroom Logo

Anteroom

The room before the room — a secure, private space between you and the AI.

Self-hosted ChatGPT-style web UI and agentic CLI that connects to any OpenAI-compatible API.
Install with pip. Run locally. Own your data.

DocumentationQuick StartFeaturesSecurity

Anteroom - Midnight Theme


Why Anteroom?

An anteroom is the private chamber just outside a larger hall --- a controlled space where you decide who enters and what leaves. That's exactly what this is: a secure layer on your machine between you and any AI, where your conversations never touch someone else's cloud.

Anteroom connects to any OpenAI-compatible endpoint --- your company's internal API, OpenAI, Azure, Ollama, LM Studio, or anything else that speaks the OpenAI protocol. Built to OWASP ASVS L1 standards because your conversations deserve real security, not security theater.

One command. No cloud. No telemetry. No compromise.


Quick Start

pip install anteroom
aroom init         # Interactive setup wizard

Or create ~/.anteroom/config.yaml manually:

ai:
  base_url: "https://your-ai-endpoint/v1"
  api_key: "your-api-key"
  model: "gpt-4"
aroom --test       # Verify connection
aroom              # Web UI at http://127.0.0.1:8080
aroom chat         # Terminal CLI (interactive REPL)
aroom exec "task"  # Execute a task (non-interactive, for scripting/CI)
aroom --version    # Show version

Features

Web UI

Full-featured ChatGPT-style interface with conversations, projects, folders, tags, file attachments, MCP tool integration, prompt queuing, canvas panels for AI-generated content (CodeMirror 6 editor), inline safety approvals, sub-agent progress cards for parallel AI execution, command palette, and four built-in themes.

Midnight Theme Dawn Theme

CLI Chat

An agentic terminal REPL with built-in tools (read/write/edit files, bash, glob, grep, canvas, run_agent), MCP integration, sub-agent orchestration for parallel task execution, skills system, safety approval prompts for destructive operations, planning mode for multi-step tasks (explore with constraints, write a plan, then approve for execution), and Rich markdown rendering. Type while the AI works --- messages queue automatically.

aroom chat                          # Interactive REPL
aroom chat "explain main.py"        # One-shot mode
aroom chat -c                       # Continue last conversation
aroom chat --model gpt-4o "hello"   # Override model
aroom chat --plan                   # Start in planning mode
aroom chat                          # Then in REPL:
  > /plan                           # Enter planning mode
  > /plan approve                   # Exit planning mode and execute plan
  > /plan build a REST API          # Inline: planning mode + start prompt
  > /plan status                    # Show planning mode status

CLI Exec

Non-interactive exec mode for scripting, CI/CD pipelines, and automation. Execute a task and get JSON output with no approval prompts or interactive features. Perfect for embedding Anteroom in shell scripts, GitHub Actions, or other automation workflows.

aroom exec "summarize test_results.txt" --json      # JSON output for parsing
aroom exec "run tests" --timeout 300 --quiet        # CI/CD with timeout
aroom exec "generate report" --no-tools             # Disable tool use
aroom exec "refactor code" --no-conversation        # Skip persistence

Shared Core

Both interfaces share the same agent loop, storage layer, and SQLite database. Conversations created in the CLI show up in the web UI, and vice versa.


Security

Layer Implementation
Auth Session tokens, HttpOnly cookies, HMAC-SHA256
CSRF Per-session double-submit tokens
Headers CSP, X-Frame-Options, HSTS, Referrer-Policy
Database Parameterized queries, column allowlists, path validation
Input DOMPurify, UUID validation, filename sanitization
Rate Limiting 120 req/min per IP
Tool Safety Destructive action approvals (CLI + Web UI), configurable patterns, sensitive path blocking
MCP Safety SSRF protection, server-side error handling

Full details in SECURITY.md.


Documentation

For complete documentation including configuration, CLI commands, API reference, themes, MCP setup, skills, and development guides, visit anteroom.readthedocs.io.


Development

git clone https://github.com/troylar/anteroom.git
cd anteroom
pip install -e ".[dev]"
pytest tests/ -v
Backend Python 3.10+, FastAPI, Uvicorn
Frontend Vanilla JS, marked.js, highlight.js, KaTeX, CodeMirror 6
CLI Rich, prompt-toolkit, tiktoken
Database SQLite with FTS5, WAL journaling
AI OpenAI Python SDK (async streaming)
MCP Model Context Protocol SDK (stdio + SSE)

MIT License
Built for people who care about their conversations.
anteroom.readthedocs.io

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

anteroom-1.24.5.tar.gz (1.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

anteroom-1.24.5-py3-none-any.whl (1.1 MB view details)

Uploaded Python 3

File details

Details for the file anteroom-1.24.5.tar.gz.

File metadata

  • Download URL: anteroom-1.24.5.tar.gz
  • Upload date:
  • Size: 1.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for anteroom-1.24.5.tar.gz
Algorithm Hash digest
SHA256 e60b0797a27a800bfa338c27d57f78dc22419f9cfa43a288cf3355a17ff98006
MD5 b43dbda13d433923a0539e5b1c959794
BLAKE2b-256 9d21d74a82fd73538856ded53aaaea28c761374cf75e4dd3e87aafd865f284d3

See more details on using hashes here.

File details

Details for the file anteroom-1.24.5-py3-none-any.whl.

File metadata

  • Download URL: anteroom-1.24.5-py3-none-any.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for anteroom-1.24.5-py3-none-any.whl
Algorithm Hash digest
SHA256 8abd11cabffb68a62f742b0a2e138f18a1e5d0a29349fbf78f59f954aa15717f
MD5 cea426356164b6df12d8297e8d98e50a
BLAKE2b-256 2b8129b5b8afb8d6c23cf26774f0d058a1d264198d6a36ec3e9bfb25346561ef

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page