Anteroom - your gateway to AI conversation
Project description
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.
Documentation • Quick Start • Features • Security
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
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.
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, 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
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, shell metacharacter rejection |
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
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.14.11.tar.gz.
File metadata
- Download URL: anteroom-1.14.11.tar.gz
- Upload date:
- Size: 977.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
75de73f291084159a9ef3ae2f29dcfaf0238c3195fdf7da217e5bb3eaed5345c
|
|
| MD5 |
489b69427c2a7ad33b63589e8cd182f8
|
|
| BLAKE2b-256 |
3794a9faa2a810da2d4a3b41c0d31b2b4e6893e9d72cbd1d352566e52310b90b
|
File details
Details for the file anteroom-1.14.11-py3-none-any.whl.
File metadata
- Download URL: anteroom-1.14.11-py3-none-any.whl
- Upload date:
- Size: 1.0 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 |
e7c3b5793fdfb1d0fe9db2eab718e070364ba32243f8d46fef7da00674252dd4
|
|
| MD5 |
c5da4b0e9befca44860fd5b38f459863
|
|
| BLAKE2b-256 |
6e6a062e6c85707f97605fc1b2110420be5ef4e29bfa681f9cb6a800717a9dc3
|