Getting Started
Architecture
Nebo is a Rust workspace with focused crates that handle different concerns. Understanding the architecture helps you build extensions that work well with the system.
Runtime
Nebo runs as a single process on the user's machine. It can operate in three modes:
- Desktop — native window with system tray (Tauri 2)
- Headless — browser-based UI at
localhost:27895 - CLI — direct chat from the terminal
All three modes share the same agent runtime, tool system, and memory store.
Multi-Provider
Nebo isn't locked to a single AI provider. Users choose their preferred model:
- Anthropic (Claude) — streaming, tool calls, extended thinking
- OpenAI (GPT-4, GPT-4o) — streaming, tool calls
- Google Gemini — streaming, tool calls
- Ollama — local models, zero API keys
- DeepSeek — OpenAI-compatible API
Your skills and agents work with any provider. The AI crate abstracts the differences.
Built-in Tools
Every Nebo instance ships with core capabilities:
| Domain | Capabilities |
|---|---|
| File | Read, write, edit, search files and code |
| Shell | Execute commands, manage processes |
| Web | Fetch pages, search, browser automation |
| Memory | Persistent recall across sessions |
| Tasks | Parallel sub-agents, scheduled jobs |
| Communication | Inter-agent messaging via NeboLoop |
Skills and MCP servers add to this baseline. The tool registry manages permissions and policy — skills can declare which tools they need, and the user controls what's allowed.
The STRAP Pattern
Nebo's tool system follows the STRAP pattern (Skill-Tool-Registry-Agent-Policy):
- Skill declares what tools it needs
- Tool implements the capability
- Registry manages available tools
- Agent orchestrates execution
- Policy controls what's allowed
This gives users granular control over what extensions can do while keeping the developer experience simple.