Anteroom - your gateway to AI conversation
Project description
Anteroom
Your private AI gateway. Self-hosted. Agentic. Secure.
Docs • Quick Start • Changelog • Tutorials
What is Anteroom?
Anteroom is a ChatGPT-style web UI and agentic CLI that runs on your machine and connects to any OpenAI-compatible API — OpenAI, Azure, Ollama, LM Studio, or your company's internal endpoint.
Think of it as your private room between you and the AI. Your data never leaves your machine. No cloud. No telemetry. Just pip install and go.
Built for enterprise teams behind firewalls who need agentic AI without sending data to third parties.
Built for developers who want a CLI-first, tool-rich AI workflow they fully control.
Built for anyone who believes their conversations are their own.
Get running in 60 seconds
pip install anteroom
aroom init # interactive setup wizard
aroom # web UI at http://127.0.0.1:8080
That's it. No Docker. No database server. No config files required.
Two interfaces, one brain
Everything is shared — conversations, tools, storage. Start in the web UI, pick up in the terminal. Or live entirely in the CLI. Your choice.
Web UI
A full-featured chat interface with projects, folders, tags, file attachments, canvas panels, inline tool approvals, and four built-in themes.
CLI REPL
An agentic terminal with 11 built-in tools, MCP integration, sub-agent orchestration, a skills system, and planning mode — all with Rich markdown rendering. Type while the AI works; messages queue automatically.
$ aroom chat
anteroom v1.24.6 — the secure AI gateway
model: gpt-4o | tools: 10 built-in + 3 MCP | safety: ask_for_writes
> Refactor the auth module to use JWT tokens
Thinking... (12s)
I'll break this into steps:
1. Read the current auth implementation
2. Design the JWT token flow
3. Implement and test
read_file src/auth.py ✓
read_file src/middleware.py ✓
edit_file src/auth.py (+42 -18) ✓ ⚠ requires approval
edit_file src/middleware.py (+15 -8) ✓
bash pytest tests/unit/test_auth.py ✓ 12 passed
Done. Refactored auth to use JWT with RS256 signing.
See the changes in src/auth.py and src/middleware.py.
>
Exec mode
Non-interactive mode for scripts, CI/CD, and automation:
aroom exec "summarize this PR" --json # structured output
aroom exec "run tests and fix failures" --timeout 300
echo "review this" | aroom exec - --quiet # pipe stdin
What makes it different
Agentic, not just chat
The AI reads files, edits code, runs commands, searches your codebase, and spawns parallel sub-agents — with safety gates at every step. Not a chatbot. A collaborator.
Built-in tools: read_file write_file edit_file bash glob_files grep create_canvas update_canvas patch_canvas run_agent ask_user
Extensible via MCP
Connect any Model Context Protocol server to add tools. Databases, APIs, file systems, custom services — the AI can use them all with the same safety controls as built-in tools.
# config.yaml
mcp_servers:
- name: filesystem
command: npx @anthropic/mcp-filesystem
Planning mode
For complex tasks, the AI explores first, writes a plan, then executes only after you approve. No surprises. Works in both CLI and web UI.
CLI:
> /plan build a REST API for user management
Planning... reading codebase, designing approach
> /plan approve
Executing plan: 8 steps across 5 files...
Web UI: Check the plan panel when planning is active, approve or reject before execution continues.
Security-first
Built to OWASP ASVS Level 1 standards. Not bolted on — baked in.
- 4 tool risk tiers: read / write / execute / destructive
- Configurable approval modes: auto, ask_for_writes, ask_for_dangerous
- Session + CSRF + rate limiting + CSP
- Destructive command detection before execution
- Bash sandboxing: execution timeouts, output limits, path/command blocking, network/package restrictions
- MCP SSRF protection built in
Knowledge sources
Upload documents (PDFs, DOCX, code, etc.) via CLI (/upload <path>) or web UI drag-and-drop. Text is automatically extracted from binary formats and indexed for semantic search. Sources persist across conversations and are searchable with local vector embeddings — no API key needed.
pip install anteroom[docs] # adds PDF/DOCX text extraction
pip install anteroom[embeddings] # adds local vector search
Works with everything
Any endpoint that speaks the OpenAI protocol:
- OpenAI — GPT-4o, o1, etc.
- Azure OpenAI — your enterprise deployment
- Ollama / LM Studio — fully offline
- vLLM / TGI — self-hosted open models
- Any OpenAI-compatible API
The full picture
| Web UI | Conversations with auto-generated slugs, projects, folders, tags, attachments, canvas, themes, keyboard shortcuts |
| CLI | REPL, one-shot, exec mode, planning, skills, @file references, Rich rendering, slug-based conversation lookup |
| Tools | 10 built-in + unlimited MCP tools, parallel execution, sub-agent orchestration |
| Safety | 4 risk tiers, 3 approval modes, destructive command detection, SSRF protection |
| Storage | SQLite + FTS5 + optional vector search, fully local, no cloud |
| Security | OWASP ASVS L1, CSRF, CSP, HSTS, rate limiting, parameterized queries |
| Identity | Ed25519 keypairs, HMAC-SHA256 session tokens, stable across restarts |
| Config | YAML + env vars, per-project ANTEROOM.md conventions, dynamic API key refresh |
| Deployment | pip install anteroom — one command, no infrastructure |
Development
git clone https://github.com/troylar/anteroom.git
cd anteroom && pip install -e ".[dev]"
pytest tests/ -v # 1800+ tests
ruff check src/ tests/ # lint
ruff format src/ tests/ # format
Stack: Python 3.10+ • FastAPI • SQLite • Vanilla JS • Rich • prompt-toolkit • OpenAI SDK • MCP SDK
MIT License
An anteroom is the private chamber just outside a larger hall —
a controlled space where you decide who enters and what leaves.
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
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 anteroom-1.56.0.tar.gz.
File metadata
- Download URL: anteroom-1.56.0.tar.gz
- Upload date:
- Size: 1.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
721ef66b876df139fef357165f7fc4b3c3bcdba7951938ae68e11eababacd7b2
|
|
| MD5 |
8a148474d5b131faaae8234be4fd6508
|
|
| BLAKE2b-256 |
ff3a485f7bc35873f690406d1b66c0bbcd6b4b9a612e0ab70040b81b4c8b99f4
|
File details
Details for the file anteroom-1.56.0-py3-none-any.whl.
File metadata
- Download URL: anteroom-1.56.0-py3-none-any.whl
- Upload date:
- Size: 1.2 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0fe0a67b08912b43d32dd349ecb54653924c31db131315efa71f46742c0a0d34
|
|
| MD5 |
c18a084679fe86a40a7ea2cbc8154ee8
|
|
| BLAKE2b-256 |
ab7814af830382e26fb2e66e586a8390ff6c2715feaff6ca1d25a8fe03ff8e26
|