Skip to main content

Anteroom - your gateway to AI conversation

Project description

Anteroom

Anteroom

Your private AI gateway. Self-hosted. Agentic. Secure.

Web UI + CLI. Any LLM. Enterprise security. No telemetry.
pip install anteroom

PyPI Version Python 3.10+ Coverage License

DocsQuick StartWhy Anteroom?Changelog


Anteroom Web UI




The backstory

I'm a CTO at a Fortune 500 in a regulated industry where we can't use third-party AI tools — no ChatGPT, no Claude Code, no Cursor, no Copilot. But we can pip install open-source packages.

So I built Anteroom: a self-hosted AI gateway with a polished web UI for everyone on the team and an agentic CLI for developers. It connects to any OpenAI-compatible API — Azure OpenAI, Ollama, LM Studio, or your company's internal endpoint. Your data never leaves your network.

JPMorgan built a private AI gateway for 250,000 employees. Goldman Sachs built one for 46,500. Anteroom gives every regulated institution the same capability — without a nine-figure technology budget.




Why Anteroom?

38% of employees paste confidential data into unauthorized AI tools. Marketing teams, executives, and product owners are the worst offenders — not developers. Shadow AI breaches cost $650K+ per incident.

Cloud-hosted AI sends your data to third parties. Self-hosted chat UIs can't actually do anything. Building a custom platform costs millions.

Anteroom threads the needle:

Problem Anteroom
"AI tools send our data to the cloud" Self-hosted, local-first. Data never leaves your network.
"Chat AI can't actually do things" Agentic: edits files, runs commands, generates documents, creates presentations
"Our compliance team won't approve it" OWASP ASVS L2 security, HMAC-chained audit logs, DLP, bash sandboxing
"It only works for developers" Web UI for everyone + CLI for developers, same governed platform
"We can't control costs at scale" Token budgets per-request, per-user, per-day
"We're locked into one AI vendor" Any OpenAI-compatible API — Azure, Ollama, local models
"It takes months to deploy" pip install anteroom && aroom init — done in 60 seconds



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.

Or use the CLI directly:

aroom chat                              # interactive REPL
aroom exec "summarize this PR" --json   # one-shot for scripts



Two interfaces, one engine

Everything is shared — conversations, tools, storage, security controls, audit trail. The web UI serves the whole organization. The CLI serves developers who want agentic power tools.


Web UI

A full-featured chat interface with projects, folders, tags, file attachments, canvas panels, inline tool approvals, and four built-in themes. Product owners, executives, compliance officers, and marketing teams use this.

Midnight   Ember

Dawn   Aurora


CLI REPL

An agentic terminal with 12 built-in tools (+ 3 optional MS Office tools), MCP integration, sub-agent orchestration, a skills system, and planning mode — all with Rich markdown rendering.

$ aroom chat

anteroom v1.85.0 — the secure AI gateway
  model: gpt-4o | tools: 12 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



Key capabilities

Agentic, not just chat

The AI reads files, edits code, runs commands, searches your codebase, generates documents, creates presentations, and spawns parallel sub-agents — with safety gates at every step.

Built-in tools: read_file write_file edit_file bash glob_files grep create_canvas update_canvas patch_canvas run_agent ask_user introspect

Optional tools (install with pip install anteroom[office]): docx xlsx pptx — create, read, and edit Word, Excel, and PowerPoint files directly


Packs: shareable AI capabilities

Packs are versioned, git-distributed bundles with 7 artifact types: skills, tools, prompts, templates, hooks, configs, and docs. Build a "compliance pack" with regulatory prompts, a "marketing pack" with brand guidelines, a "DevOps pack" with deployment skills — and share them across teams.

aroom pack install https://github.com/example/compliance-pack
aroom pack list

Packs use a 6-layer precedence system (built-in → global → space → project → conversation → runtime) so departments can customize without weakening security controls.


Spaces: named workspaces

Spaces bundle repositories, tools, configs, and packs into named workspaces. Different teams, different projects, different configurations — centrally governed.

aroom space create my-project --repo ./frontend --repo ./backend
aroom space switch my-project

Enterprise-grade security

Built to OWASP ASVS Level 2 standards. Not bolted on — baked in.

  • Tool safety gate: 4 risk tiers, 4 approval modes, 3 permission scopes
  • 16 hard-block patterns: Catastrophic commands blocked unconditionally
  • Bash sandboxing: Execution timeouts, output limits, path/command blocking, network restrictions
  • Prompt injection defense: Trust classification, defensive XML envelopes, tag breakout prevention
  • Tamper-evident audit log: HMAC-SHA256 chained JSONL, daily rotation, content redaction, SIEM-ready
  • Session hardening: Ed25519 identity, concurrent session limits, IP allowlisting
  • Token budgets: Per-request, per-conversation, per-day limits (cost governance at scale)
  • Sub-agent isolation: Concurrency, depth, iteration, timeout, and output caps
  • Team config enforcement: Lock security settings across the entire organization
  • DLP: Configurable data loss prevention rules

Works with any LLM

Any endpoint that speaks the OpenAI protocol:

  • Azure OpenAI — your enterprise deployment
  • OpenAI — GPT-4o, o1, o3, etc.
  • Ollama / LM Studio — fully offline, fully private
  • vLLM / TGI — self-hosted open models
  • Any OpenAI-compatible API

Extensible via MCP

Connect any Model Context Protocol server. Databases, APIs, file systems, internal services — with per-server trust levels and tool filtering.

# config.yaml
mcp_servers:
  - name: internal-tools
    command: npx
    args: ["-y", "@my-org/internal-tools"]
    trust_level: trusted
  - name: external-api
    command: npx
    args: ["-y", "@third-party/api"]
    trust_level: untrusted

Planning mode

For complex tasks, the AI explores first, writes a plan, then executes only after you approve. Works in both CLI and web UI.

> /plan build a REST API for user management
  Planning... reading codebase, designing approach

> /plan approve
  Executing plan: 8 steps across 5 files...

Knowledge sources

Upload documents (PDFs, DOCX, code) via CLI or web UI drag-and-drop. Text is automatically extracted and indexed for semantic search with local vector embeddings — no external API needed.

pip install anteroom[docs]        # adds PDF/DOCX text extraction
pip install anteroom[embeddings]  # adds local vector search



The full picture

Web UI Conversations, projects, folders, tags, attachments, canvas, themes, keyboard shortcuts
CLI REPL, one-shot, exec mode, planning, skills, @file references, Rich rendering
Tools 12 built-in + 3 optional office tools + unlimited MCP tools, parallel execution, sub-agents
Packs 7 artifact types, 6-layer precedence, git distribution, lock files, health checks
Spaces Workspace management, auto-discovery, repository cloning, per-space config overlays
Security OWASP ASVS L2, CSRF, CSP, HSTS, SRI, rate limiting, DLP, prompt injection defense
Audit HMAC-SHA256 chained JSONL, daily rotation, content redaction, SIEM integration
Storage SQLite + FTS5 + optional vector search, fully local, optional SQLCipher encryption
Config YAML + env vars, ANTEROOM.md conventions, team enforcement, dynamic API key refresh



Development

git clone https://github.com/troylar/anteroom.git
cd anteroom && pip install -e ".[dev]"
pytest tests/ -v                    # 2900+ 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




Contributing

See CONTRIBUTING.md for architecture overview, dev setup, and contribution guidelines. Packs are the easiest way to contribute — no core changes needed.




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.ioanteroom.ai

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.87.0.tar.gz (1.3 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.87.0-py3-none-any.whl (1.3 MB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for anteroom-1.87.0.tar.gz
Algorithm Hash digest
SHA256 961d26030a9fa8b19d5a1433da9abf3af3872b7e3095e191354d12949de86ba6
MD5 dddfe18b14ee2939386a06a41fe700c3
BLAKE2b-256 c6c9f8dac17fb2f4b1b3e47ae2a4e93f7365aea3782be528275ab02d1f637404

See more details on using hashes here.

File details

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

File metadata

  • Download URL: anteroom-1.87.0-py3-none-any.whl
  • Upload date:
  • Size: 1.3 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.87.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c928a485ce3a7375bcedf5517d8bfadfffecfa652bd9ca3a1c923b4351ad3c80
MD5 5c5b9fed126a4896073bc123536fb599
BLAKE2b-256 c3f77bd087baaaceb25a135654ad146c9a371030fb68fe502e66dcbbe77427f2

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