← Discover MCPs and Agents
f
AgentAI & MLGitHub

future-os

One AI agent, everywhere you work — terminal, desktop, mobile, and your chat apps. Rust core.

Links

README

From the repo.

FutureOS

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.

FutureOS desktop app — new conversation, models, skills, and workspace in one window

Quick StartFeatures3,800+ ModelsCommandsTroubleshooting

⭐ If FutureOS is useful to you, a star helps others find it.

Rust core License: MIT + Apache-2.0 中文


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

CategoryDetails
Multi-InterfaceTerminal UI (TUI), desktop app (GUI), mobile apps (Android & iOS), CLI, IM bots — one agent, everywhere
Configurable Tool Safetyread, 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 Flexibility3800+ built-in models across 140+ providers (catalog); custom providers via models.json; scoped model lists
Loop EngineeringDurable 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 Skills15+ 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 SessionsBranch any conversation like a repo — fork, clone, and tree navigation over JSONL session history
Rust CoreAgent, 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:50051 to future agent to serve plain TCP instead, and point clients at it with FUTURE_AGENT_GRPC_ADDR=127.0.0.1:50051. TCP is opt-in — never expose it beyond a trusted interface.

FutureOS terminal UI — built-in skills loaded, /help command palette

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 (the future-* binaries still exist as build targets — cargo build -p future-tui etc. — but are no longer installed by default).

If connection fails, check agent discovery or sidecar startup — see Troubleshooting.

Essential Slash Commands (TUI)

CommandPurpose
/helpShow all commands and shortcuts
/model [name]Select / switch model
/newStart a new session
/sessionsBrowse and switch sessions
/compactCompress conversation context
/statusSession state, token usage, cost
/stopAbort current generation
/providersConfigure providers and models
/skillsBrowse, install and manage skills
/themeSwitch the color theme

Run /help in the TUI for the full list (40+ commands).

Keyboard Shortcuts (TUI)

KeyAction
ctrl+cInterrupt / exit
ctrl+pCycle model
ctrl+rBrowse sessions
ctrl+tCycle thinking level
ctrl+oExpand / collapse thinking
ctrl+gExpand / collapse tool output
ctrl+xCopy the last answer
ctrl+vPaste clipboard (image or text)
tabAutocomplete
↑↓Scroll / navigate lists
enterSubmit / accept
escapeClose popup

Troubleshooting

SymptomFix
Client exits with a connection / gRPC errorRun 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" errorNo model configured yet. Run future config — see Configure a model.
Build / install problemsSee Build & Install (platform toolchains, linker, GUI packaging).

Community

💬 Discussions🐛 Issues🔒 Security📖 WikiThird-Party Notices

Collected info

  • 100 stars
  • 12 forks
  • Language: Rust
  • Source updated: 9/24/2026