Open Retrieval-Based Inference Toolkit
The self-hosted AI backend for private data and tool-using agents.
Connect files, databases, APIs, and MCP tools to local or hosted models behind one OpenAI-compatible API—with authentication, observability, and an admin UI built in.
Explore interactive demos in your browser. No installation or account required.
⭐ If ORBIT looks useful, star the repo — it helps others find it and tells us what to keep building.
multimodal.mp4
Upload PDFs, documents, and images, then ask questions across all of them in one conversation. Context is preserved across turns, and local models keep every file and query on your infrastructure. Follow the tutorial to see how it works.
municipal-assistant-sts-demo.mp4
Create voice‑enabled virtual assistants that answer questions in any language, drawing knowledge from any data source (API, database, file, etc.). See realtime-voice
es-logs.mp4
Chat with your Elasticsearch application logs so incident management teams can ask natural-language questions and let AI trace an incident back to its root cause. See elasticsearch-intent-template
| What you get | |
|---|---|
| Connect anything | Bring files, SQL, NoSQL, vector stores, Elasticsearch, REST/GraphQL APIs, and MCP tools together through YAML-configured adapters. |
| Use any model | Keep one API contract while routing to Ollama, llama.cpp, vLLM, OpenAI, Anthropic, Gemini, Bedrock, Microsoft Foundry, OpenRouter, and more. |
| Keep data under your control | Deploy on-premises, in a private cloud, or in an air-gapped environment while choosing local, self-hosted, or hosted models. |
| Govern AI operations | RBAC, OIDC/SSO, identity allowlisting, per-key quotas, audit logs, moderation, and file encryption. |
| Stay resilient in production | Use provider fallbacks, retries, circuit breakers, health checks, metrics, hot adapter reloads, and an integrated admin panel for day-to-day operations. |
ORBIT sits between your applications and the models, data, and tools they need. Move from a local prototype to a governed deployment without replacing the architecture.
For technical and security assessments, see platform comparison and capability matrix, and NIST SP 800-53 and OWASP Top 10 mapping.
Try ORBIT Sandbox → Choose a demo and ask your first question—no download, Docker, or account required.
Prerequisites: Python 3.11+ (3.12 preferred) and an internet connection for dependencies. The default configuration uses Ollama for inference, so install Ollama as well if you use the default provider. Windows users can follow the Windows installation guide.
- Download the ORBIT v2.17.12 tarball.
- Extract it, enter the release directory, and start ORBIT:
curl -LO https://github.com/schmitech/orbit/releases/download/v2.17.12/orbit-2.17.12.tar.gz
tar -xzf orbit-2.17.12.tar.gz && cd orbit-2.17.12
./install/setup.sh --profile default
ollama pull gemma4:e2b
# Required for file/multimodal adapters:
ollama pull nomic-embed-text
./bin/orbit.sh start
./bin/orbit.sh statusThe default setup enables Ollama in config/inference.yaml, selects it as the
global provider in config/config.yaml, and uses the gemma4-e2b-cpu Ollama
preset for the initial conversational adapter. Presets are defined in
config/ollama.yaml; this preset resolves to the gemma4:e2b model tag.
setup.sh does not install Ollama; install and start it separately before
running the model pull command (run ollama serve in another terminal if
Ollama is not already running).
All ORBIT behavior is managed through YAML: use config/config.yaml for global
server settings, config/inference.yaml for provider enablement and credentials,
config/ollama.yaml for Ollama presets, and the files under config/adapters/
for adapter behavior.
To use another provider, enable it in config/inference.yaml, set its
credential in .env, and select it globally or on the adapter that should use it.
For the adapter implementations themselves, see server/adapters/; for
ready-to-use intent templates (SQL, GraphQL, MongoDB, Elasticsearch, HTTP, and more), see
examples/intent-templates/.
Adapters are defined in config/adapters.yaml. The default installation
comes with the simple-chat and multimodal adapters enabled, but you can use the examples above
to configure your own. See docs/adapters/ for technical details on how the
adapter system works.
ORBIT starts at http://localhost:3000, and the dashboard at http://localhost:3000/admin - default credentials: admin/ChangeMe!2026.
Follow the tutorial to verify the installation and create your first chat.
dashboard.mp4
The built-in admin panel is ORBIT's control plane—manage adapters, API keys, prompts, and system operations without touching server code.
For a quick smoke test, the release seed includes default-key mapped to the
simple-chat adapter:
curl -X POST http://localhost:3000/v1/chat \
-H 'Content-Type: application/json' \
-H 'X-API-Key: default-key' \
-H 'X-Session-ID: readme-smoke-test' \
-d '{
"messages": [
{"role": "user", "content": "Say hello in one sentence"}
],
"stream": false
}'Test it from a terminal with orbit-cli:
npm install -g @schmitech/orbit-cli@latest
orbit-chat --url http://localhost:3000 --key default-keyorbit-chat.mp4
The ORBIT chat CLI tool.
Or test it from the browser with orbitchat:
npm install -g orbitchat@latest
# Minimal single-adapter config for a quick test — see orbitchat.yaml.example for all options
cat > orbitchat.yaml <<'EOF'
agentMode:
mode: "single"
defaultAdapterId: "simple-chat"
adapters:
- id: "simple-chat"
EOF
# Starts the proxy and opens http://localhost:5173 in your browser
ORBIT_ADAPTER_KEYS='{"simple-chat":"default-key"}' orbitchat --config orbitchat.yaml --openSee orbitchat.yaml.example for the full set of configuration options.
For API-key creation, file uploads, and browser-based testing, continue with Before you start.
Prefer containers or a bundled chat UI? Use the Docker quick start, or install and configure OrbitChat.
| I want to… | Start here |
|---|---|
| Try ORBIT in my browser | Try ORBIT Sandbox → — explore the live demos before setting up your own instance. |
| Learn ORBIT | Tutorial · First chat · HTTP APIs |
| Connect private data | Files · Vector stores · SQL · Intent templates · Adapter system overview |
| Build agents | MCP tools · Automatic skill routing · A2A · Adapter creation |
| Run in production | Authentication · Cost tracking · Rate limiting · Fault tolerance |
| Use a client | OrbitChat · Realtime Voice · Node.js SDK · Python API example |
See the documentation index for every guide and architecture deep dive.
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.
ORBIT is licensed under the Apache License 2.0.
