Open-Source AI Platform Orbit
Orbit is an open-source AI backend that connects private data, internal tools, and models through a single OpenAI-compatible API. It supports local and cloud models, RAG, MCP tool calling, and includes production features like authentication, quotas, observability, and an admin panel.
Notifications You must be signed in to change notification settings
Fork 56
Star 327
BranchesTags
Open more actions menu
Folders and files
NameName
Last commit message
Last commit date
Latest commit
History
2,144 Commits
2,144 Commits
bin
bin
clients
clients
config
config
docker
docker
docs
docs
examples
examples
install
install
server
server
utils
utils
.gitattributes
.gitattributes
.gitignore
.gitignore
CHANGELOG.md
CHANGELOG.md
CLAUDE.md
CLAUDE.md
CODE_OF_CONDUCT.md
CODE_OF_CONDUCT.md
CONTRIBUTING.md
CONTRIBUTING.md
LICENSE
LICENSE
README.md
README.md
SECURITY.md
SECURITY.md
conformance-baseline.yml
conformance-baseline.yml
env.example
env.example
ruff.toml
ruff.toml
Repository files navigation
Connect private data and internal tools through one OpenAI-compatible API
Connect files, databases, vector stores, models, APIs, and MCP tools. Run locally or in your cloud—with authentication, observability, and governance built in.
⚡ Try Live Sandbox • Quick start • Watch the demo • Tutorial • Documentation
Explore the live sandbox instantly — no download, Docker, or setup required.
multimodal.mp4
Upload PDFs, spreadsheets, and images, then query them together with context preserved across the conversation.
👉 Try this live in your browser →
⭐ Cloning ORBIT? If it looks useful, star the repository. It helps other developers discover the project and signals that we should keep investing in new model, datasource, and agent integrations.
One backend for private AI applications
What ORBIT gives you
Connect anything Query files, SQL, NoSQL, vector stores, Elasticsearch, REST/GraphQL APIs, and MCP tools in natural language across multiple languages.
Use any model Route one API contract across local models such as Ollama, llama.cpp, and vLLM or cloud providers such as OpenAI, Anthropic, Gemini, Bedrock, and Azure.
Operate it safely Ship with API keys, RBAC, SSO, quotas, moderation, fallbacks, metrics, audit logs, and an admin panel instead of assembling them yourself.
ORBIT sits between your applications and the models, data, and tools they need. Define adapters in YAML, expose them through one OpenAI-compatible endpoint, and move from a local prototype to a governed deployment without replacing the architecture.
Where does it fit? ORBIT combines an AI gateway with retrieval and tool execution. It is a backend API rather than just a chat UI, and it includes production controls rather than leaving them to application code. See ORBIT vs. Open WebUI and ORBIT vs. LiteLLM.
ORBIT is actively maintained. See the release history, changelog, and commit history.
model-choosing.mp4
Switch to any allowed model mid-conversation, with the active adapter policy defined in config/adapters/multimodal.yaml.
🚀 Quick Start
See what ORBIT can do before you install: explore the live sandbox instantly—no download, Docker, or setup required.
Otherwise, skip the clone and config-file editing — pull a flavor image and run it. ORBIT, the orbitchat web UI, and a minimalistic document-chat setup are all inside to get you started in minutes.
Prerequisites: Docker, 4 GB of free RAM, and 3 GB of disk space.
Option 1: Local / Offline (Ollama)
docker pull schmitech/orbit-ollama:latest docker run -d --name orbit -p 5173:5173 -p 3000:3000 \ -v orbit-data:/orbit/data \ -v orbit-models:/orbit/models \ schmitech/orbit-ollama:latest
The first run downloads the local chat/vision model (gemma4:e2b, ~7.2 GB) inside the container and will take some time to complete startup depending on your internet connection speed. Once pulled, open http://localhost:5173 and start chatting — upload a PDF, a spreadsheet, or an image and ask about it. No cloud account or API key required.
Model
Chat gemma4:e2b (Ollama)
Vision gemma4:e2b (Ollama)
Embeddings nomic-embed-text (Ollama)
Option 2: OpenAI Hosted Model
export OPENAI_API_KEY=sk-...
docker pull schmitech/orbit-openai:latest docker run -d --name orbit -p 5173:5173 -p 3000:3000 \ -e OPENAI_API_KEY \ -v orbit-data:/orbit/data \ schmitech/orbit-openai:latest
Model
Chat gpt-5.4-mini (also selectable: gpt-5.4, gpt-5.4-nano)
Vision gpt-5.5
Embeddings text-embedding-3-small
Option 3: Gemini Hosted Model
export GOOGLE_API_KEY=...
docker pull schmitech/orbit-gemini:latest docker run -d --name orbit -p 5173:5173 -p 3000:3000 \ -e GOOGLE_API_KEY \ -v orbit-data:/orbit/data \ schmitech/orbit-gemini:latest
Model
Chat gemini-3.1-pro-preview (also selectable: gemini-3.6-flash)
Vision gemini-3.6-flash
Embeddings gemini-embedding-2-preview
Tip
These are just the defaults. Change the active model per adapter from the Admin Panel's adapter settings (persists across restarts, stored in the orbit-data volume), or inspect/edit the resolved YAML directly at /orbit/config-runtime/adapters/multimodal.yaml inside the running container (docker exec -it orbit sh) — note that a container restart regenerates this file from the image default, so edits there don't survive a restart on their own.
Note
-e OPENAI_API_KEY (no =value) passes through whatever that variable is already set to in your shell — export it first, don't paste the key inline as -e OPENAI_API_KEY=sk-..., which would leave it sitting in your shell history. Each cloud flavor needs exactly one credential — the same key powers chat, vision, and embeddings, so nothing silently falls back to a different provider. docker pull never needs, receives, or persists a credential; only docker run does.
Port 5173 is the chat UI, 3000 is the OpenAI-compatible API if you want to call ORBIT directly:
curl -X POST http://localhost:3000/v1/chat/completions \ -H 'Content-Type: application/json' \ -H 'X-API-Key: multimodal' \ -H 'X-Session-ID: local-test' \ -d '{"messages":[{"role":"user","content":"What can ORBIT connect to?"}]}'
You can also access the Admin Panel at http://localhost:3000/admin (default credentials: username admin, password admin123 — which can be changed inside the admin panel).
Important
These images ship with a default database and API key for first-run convenience. Rotate the default API key/admin password before exposing ORBIT beyond localhost.
For production deployments, ALWAYS use the latest stable release.
You can also follow the Docker guide, tutorial, or Windows guide.
What you can build
Goal ORBIT handles
Chat with private documents Upload PDFs, office documents, spreadsheets, images, and audio; retrieve relevant context across a conversation. Try the tutorial →
Query databases in multiple languages Generate and execute safe queries across SQL, MongoDB, Elasticsearch, and composite datasources. Try the SQL demo →
Build tool-using agents Give models scoped access to MCP servers with bounded, multi-step server-side tool loops. Read the MCP guide →
Offer one governed AI endpoint Route local and cloud models with per-key access, quotas, fallbacks, moderation, metrics, and auditability. Create your first key →
Ask database questions in multiple languages
db-query.mp4
ORBIT generates the query, runs it against the database, and charts the result in chat.
👉 Try the SQL Database query demo live →
Talk to a real-time voice assistant grounded in your data
dbchat.mp4
Speech-to-speech voice grounded in SQL databases, APIs, or data lakes — interrupt it mid-answer and it stops and responds immediately.
Let the model use internal tools
mcp-tool-demo.mp4
Connect filesystem, Slack, Postgres, GitHub, Jira, and other MCP servers without adding an agent framework.
👉 Try the MCP tool calling demo live →
Real-Time Business & Revenue Intelligence (MCP Tool Calling)
mcp-business.mp4
Multi-step agent reasoning across 9 synthetic MCP tools: CRM health, telemetry seat utilization, P1 support escalations, and churn risk simulation.
👉 Try the Business & Revenue Intelligence MCP demo live →
Operate the gateway
admin-panel.mp4
Monitor health, latency, costs, tokens, sessions, adapters, and logs behind API keys, quotas, and rate limits.
Why ORBIT?
If you need… ORBIT gives you…
More than model routing RAG, structured-data retrieval, web search, and tool execution behind the gateway.
More than a chat interface A backend that works with ORBIT Chat or any client that can call an OpenAI-compatible API.
More than a prototype framework Authentication, RBAC, SSO, quotas, moderation, circuit breakers, fallbacks, metrics, and audit logs.
Private deployment Local inference, encrypted file storage, cloud secret managers, and fully offline operation.
Less orchestration code YAML-defined adapters, datasources, prompts, provider routing, and guardrails.
Capabilities
Capability Included
Model gateway 37+ local and cloud providers, OpenAI-compatible APIs, per-key routing, model switching, retries, and fallbacks.
Retrieval Vector RAG, file and multimodal RAG, SQL, MongoDB, Elasticsearch, REST, GraphQL, web search, and multi-source answers.
Agents and protocols MCP tool calling, bounded multi-step loops, natural-language skill routing, A2A, and asynchronous RabbitMQ requests.
Media Image, video, speech, PDF, Word, Excel, PowerPoint, CSV, and markdown generation.
Security API keys, RBAC, Entra ID and Auth0 SSO, rate limits, quotas, moderation, AES-256-GCM file encryption, and cloud secret managers.
Operations Admin UI, health checks, metrics, audit logs, per-request token and estimated-cost tracking, spend analytics, circuit breakers, datasource pooling, and hot adapter reloads.
Browse all adapters · See provider configuration · Read the configuration reference
Architecture
Authenticate and route REST, OpenAI-compatible, MCP, A2A, or message-queue requests to models, private data, and tools.
Clients and documentation
Start here Resource
Learn ORBIT Tutorial · Your first chat · HTTP APIs
Configure adapters Adapter overview · Configuration guide
Connect private data Files · Vector stores · SQL
Build agents MCP tools · Auto skill routing · A2A
Run in production Authentication · Usage and cost tracking · Rate limiting · Fault tolerance
Use a client ORBIT Chat · Node.js SDK · API key and Python examples
Contributing
Contributions are welcome: new retrievers and provider integrations, deployment guides, tests, fixes, and documentation. Read CONTRIBUTING.md, pick an open issue, or start a discussion.
Maintained by Remsy Schmilinsky.
License
ORBIT is licensed under the Apache License 2.0.
Topics
Resources
Readme
Apache-2.0 license
Code of conduct
Code of conduct
Contributing
Contributing
Security policy
Security policy
Activity
Stars
327 stars
Watchers
8 watching
Forks
56 forks
Report repository