future-os
One AI agent, everywhere you work — terminal, desktop, mobile, and your chat apps. Rust core.
Links
README
From the repo.
One AI agent, everywhere you work.
Terminal, desktop, mobile, and your chat apps — one Rust core, one agent, 3,800+ models.
Configurable approvals and OS sandboxes. Local-first. Open source.
Quick Start • Features • 3,800+ Models • Commands • Troubleshooting
⭐ If FutureOS is useful to you, a star helps others find it.
Why FutureOS
- Choose the execution boundary. Configure file-access approvals and OS sandboxing for agent tools. The desktop defaults to Unrestricted (
off); select Manual or Sandboxed before working with untrusted content. See the security model and sandbox guide for defaults and limitations. - One backend, every surface. A single gRPC agent drives the terminal UI, desktop app, mobile apps, CLI, and IM bots — same sessions, same memory, same skills, wherever you happen to be.
- Long runs need engineering, not prompting. The built-in loop control plane gives durable goals, event-sourced state, and verification gates to runs of 24+ hours — start a research task at night, review the results from your phone in the morning.
Features
| Category | Details |
|---|---|
| Multi-Interface | Terminal UI (TUI), desktop app (GUI), mobile apps (Android & iOS), CLI, IM bots — one agent, everywhere |
| Configurable Tool Safety | read, write, edit, shell — approval rules and sandbox tiers (off / manual / sandbox); macOS Seatbelt, Linux system Bubblewrap, Windows restricted-token write protection. Availability and guarantees differ by platform (guide) |
| Model Flexibility | 3800+ built-in models across 140+ providers (catalog); custom providers via models.json; scoped model lists |
| Loop Engineering | Durable goals/todos/gates/monitors for long-horizon runs of 24+ hours — deterministic should-run kernel, event-sourced state, hard checks (evidence floor / acceptance contracts / verify gates), lease liveness, multi-agent (guide) |
| Powerful Built-in Skills | 15+ skills out of the box for everyday agent work — image read & generation, PDF/Word parsing, web search, browser control, slides, software install, and the /future-loop long-run goal orchestrator (builtin) |
| Forkable Sessions | Branch any conversation like a repo — fork, clone, and tree navigation over JSONL session history |
| Rust Core | Agent, IM channel bridge, loop control plane, CLI, and TUI are all written in Rust — high performance with memory safety |
Quick Start
Install
One line, no source build required:
macOS / Linux — one script, auto-detects the platform: macOS gets the official signed app (arm64 / Intel); Linux gets the .deb on Debian/Ubuntu (desktop app + unified future CLI) or the portable tarball everywhere else:
curl -fsSL https://dl.future-os.cn/install.sh | bash
Windows (PowerShell) — runs the signed installer silently:
iex (irm https://dl.future-os.cn/install.ps1)
Step-by-step installation for every platform (desktop app, toolchains, GUI packaging) is in the Build & Install guide.
The installers finish by running future init.
Configure a model
The agent needs at least one model provider before it can answer. The interactive setup supports both FutureOS and custom providers:
future config
FutureOS hosted models — device-flow sign-in provisions keys and a model list automatically:
future auth login
This works whether or not the agent is running: with the agent up the key is
applied live; without it the key is written to ~/.future/agent/auth.json
and picked up when the agent starts.
Prefer your own keys? (BYOK & custom providers)
Use a known provider. Put your API key in ~/.future/agent/auth.json, keyed by provider name. See the built-in model catalog — most providers have built-in base URLs and auto-discover their models:
{
"openai": { "type": "api_key", "key": "sk-..." }
}
For providers with user-specific base URLs (e.g. Azure's YOUR_RESOURCE), add a baseUrl field in auth.json:
{
"azure": { "type": "api_key", "key": "sk-...", "baseUrl": "https://my-resource.openai.azure.com/openai/v1" }
}
Custom provider. For providers not in the built-in catalog, specify everything in ~/.future/agent/models.json:
{
"providers": {
"my-provider": {
"apiKey": "sk-...",
"baseUrl": "https://my-api.example.com/v1",
"models": [
{ "id": "my-model", "name": "My Model", "contextWindow": 128000, "maxTokens": 16384 }
]
}
}
}
Install skills (optional)
Skills are add-on capability packs the agent picks up from
~/.future/agent/skills/. Browse the catalog and install what you need —
this only needs network access, not a running agent:
future skills list # browse the skill catalog
future skills install <name> # install one skill
future skills install # no name: install every built-in skill
Skip this and the agent still answers fine — skills just add ready-made
workflows. uninstall / update and friends are in the
CLI reference.
Run the agent
The terminal and CLI clients are thin gRPC clients. They connect over
per-user local IPC by default (a Unix-domain socket on macOS/Linux,
a current-user-only named pipe on Windows). Unix honors FUTURE_AGENT_SOCKET;
Linux otherwise uses $XDG_RUNTIME_DIR/future/agent.sock when set, falling
back to ~/.future/run/agent.sock (also the macOS default). An Agent started
with its own FutureOS home (future agent --home DIR) is addressed by that
home instead — see
isolated instances. The TUI and desktop
app start the agent automatically as a sidecar when none is running; you can
also start it yourself:
future agent # start the agent in the terminal (logs to stdout; Ctrl-C to stop)
Then launch the terminal UI from the same future command:
future tui # terminal UI
Published builds check for updates once in the background after TUI startup.
A newer version is shown as a local notice with the official installer link;
nothing is installed automatically. Release builds check the release channel,
and test/nightly builds check nightly. Local/source builds skip the check.
Network failures are silent; future tui --offline disables the check, and
non-interactive commands never perform it.
Remote / development mode: pass
--grpc-addr 127.0.0.1:50051tofuture agentto serve plain TCP instead, and point clients at it withFUTURE_AGENT_GRPC_ADDR=127.0.0.1:50051. TCP is opt-in — never expose it beyond a trusted interface.
future <cmd>is the unified entry point for every Rust component:future agent,future tui,future channel,future loop. Each runs the same code as the standalone binary of the same name (thefuture-*binaries still exist as build targets —cargo build -p future-tuietc. — but are no longer installed by default).If connection fails, check agent discovery or sidecar startup — see Troubleshooting.
Essential Slash Commands (TUI)
| Command | Purpose |
|---|---|
/help | Show all commands and shortcuts |
/model [name] | Select / switch model |
/new | Start a new session |
/sessions | Browse and switch sessions |
/compact | Compress conversation context |
/status | Session state, token usage, cost |
/stop | Abort current generation |
/providers | Configure providers and models |
/skills | Browse, install and manage skills |
/theme | Switch the color theme |
Run /help in the TUI for the full list (40+ commands).
Keyboard Shortcuts (TUI)
| Key | Action |
|---|---|
ctrl+c | Interrupt / exit |
ctrl+p | Cycle model |
ctrl+r | Browse sessions |
ctrl+t | Cycle thinking level |
ctrl+o | Expand / collapse thinking |
ctrl+g | Expand / collapse tool output |
ctrl+x | Copy the last answer |
ctrl+v | Paste clipboard (image or text) |
tab | Autocomplete |
↑↓ | Scroll / navigate lists |
enter | Submit / accept |
escape | Close popup |
Troubleshooting
| Symptom | Fix |
|---|---|
| Client exits with a connection / gRPC error | Run future doctor; check sidecar startup errors and that client/agent use the same user and IPC environment. Start future agent manually if needed. Only in explicit TCP mode, check the configured address/port. |
| Agent replies with an auth / "no model" error | No model configured yet. Run future config — see Configure a model. |
| Build / install problems | See Build & Install (platform toolchains, linker, GUI packaging). |
Community
💬 Discussions • 🐛 Issues • 🔒 Security • 📖 Wiki • Third-Party Notices
Collected info
- ★ 100 stars
- ⎇ 12 forks
- Language: Rust
- Source updated: 9/24/2026