futuregene/future-os

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

49

stars

1,141

commits

Rust

primary language

Aug 30, 2026

updated

agent-framework
ai-agents
ai-assistants
developer-tools
llm
openclaw-alternative
personal-ai
productivity
rust
tui

README

FutureOS

One AI agent, everywhere you work.

Terminal, desktop, mobile, and your chat apps — one Rust core, one agent, 3,800+ models.
Every tool call gated by your approval. 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

  • Trust before capability. Every tool call — read, write, edit, shell — is gated by your approval by default. Nothing writes to your filesystem or runs a command silently. When an agent holds your credentials, trust can't be a config option.
  • 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
Trust-First Tool Executionread, write, edit, shell — every call gated by your approval; sandbox tiers (off / manual / sandbox), with an OS sandbox on macOS (Seatbelt) and Windows (restricted token); a lean tool set, no prompt bloat
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.

Configure a model

The agent needs at least one model with an API key before it can answer.

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. The agent must be running first, listening on 127.0.0.1:50051:

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

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).

A client that exits with a connection / gRPC error almost always means the agent isn't running yet — 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
/scoped-modelsConfigure model enable/disable list
/cloneClone the current session
/forkFork the current session
/treeSession tree with fork/clone hierarchy
/name [n]Set the session name
/statusSession state, token usage, cost
/stopAbort current generation
/cwdChange the working directory
/approveApprove pending tool execution
/rejectReject pending tool execution
/cancel <run-id>Cancel a queued run
/reloadReload skills and context

Keyboard Shortcuts (TUI)

KeyAction
ctrl+pCycle model
ctrl+tCycle thinking level
ctrl+oExpand / collapse thinking
ctrl+rBrowse sessions
ctrl+cInterrupt / exit
tabAutocomplete
enterSubmit / accept
escapeClose popup
↑↓Scroll / navigate lists

Troubleshooting

SymptomFix
Client exits with a connection / gRPC errorThe agent isn't running. Start it (future agent) and check nothing else holds the port: lsof -i :50051.
Agent replies with an auth / "no model" errorNo model configured yet. Run future auth login, or add a provider to models.json — see Configure a model.
Build / install problemsSee Build & Install (platform toolchains, linker, GUI packaging).

Community

💬 Discussions🐛 Issues🔒 Security📖 WikiThird-Party Notices

Contributors

tallcode

729 commits

huichen

277 commits

ace331

119 commits

fgclaw01

8 commits

futuregene/future-os

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

49

stars

1,141

commits

Rust

primary language

Aug 30, 2026

updated

agent-framework
ai-agents
ai-assistants
developer-tools
llm
openclaw-alternative
personal-ai
productivity
rust
tui

README

FutureOS

One AI agent, everywhere you work.

Terminal, desktop, mobile, and your chat apps — one Rust core, one agent, 3,800+ models.
Every tool call gated by your approval. 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

  • Trust before capability. Every tool call — read, write, edit, shell — is gated by your approval by default. Nothing writes to your filesystem or runs a command silently. When an agent holds your credentials, trust can't be a config option.
  • 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
Trust-First Tool Executionread, write, edit, shell — every call gated by your approval; sandbox tiers (off / manual / sandbox), with an OS sandbox on macOS (Seatbelt) and Windows (restricted token); a lean tool set, no prompt bloat
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.

Configure a model

The agent needs at least one model with an API key before it can answer.

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. The agent must be running first, listening on 127.0.0.1:50051:

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

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).

A client that exits with a connection / gRPC error almost always means the agent isn't running yet — 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
/scoped-modelsConfigure model enable/disable list
/cloneClone the current session
/forkFork the current session
/treeSession tree with fork/clone hierarchy
/name [n]Set the session name
/statusSession state, token usage, cost
/stopAbort current generation
/cwdChange the working directory
/approveApprove pending tool execution
/rejectReject pending tool execution
/cancel <run-id>Cancel a queued run
/reloadReload skills and context

Keyboard Shortcuts (TUI)

KeyAction
ctrl+pCycle model
ctrl+tCycle thinking level
ctrl+oExpand / collapse thinking
ctrl+rBrowse sessions
ctrl+cInterrupt / exit
tabAutocomplete
enterSubmit / accept
escapeClose popup
↑↓Scroll / navigate lists

Troubleshooting

SymptomFix
Client exits with a connection / gRPC errorThe agent isn't running. Start it (future agent) and check nothing else holds the port: lsof -i :50051.
Agent replies with an auth / "no model" errorNo model configured yet. Run future auth login, or add a provider to models.json — see Configure a model.
Build / install problemsSee Build & Install (platform toolchains, linker, GUI packaging).

Community

💬 Discussions🐛 Issues🔒 Security📖 WikiThird-Party Notices

Contributors

tallcode

729 commits

huichen

277 commits

ace331

119 commits

fgclaw01

8 commits

Languages

Rust

80.0%

TypeScript

17.3%