Fantastic
A medium that unifies humans and AIs into a single workspace.
Fantastic is a kernel of agents. A model, a program, a file tree, a shell, a browser canvas and the human at the keyboard are all agents in one tree, addressed by id and reached the same way: one call, send. Compute, inference and memory are interchangeable — a step written as code and the same step written as an LLM call plug into the wiring identically.
[{"target": "kernel",
"payload": {"type": "reflect", "readme": true}}]There is no client library. The protocol is the API: every agent answers reflect with what it is, and docs says how to call it. Given only those self-descriptions, an AI wires the system itself.
One primitive, all the way down
Agents
A recursive tree. Each agent runs a bundle (a handler module) and keeps its state in its own record.
send
The one primitive: batched, concurrent, each item a kernel task you can ps and cancel, joinable and idempotent by id.
reflect / docs
What an agent is, and how to call it — the whole self-description, one round-trip each.
The call gate
Deny-all and two-sided: a call passes only when the caller’s can_call and the target’s callable_by both grant it.
Bridges
Every edge to the outside — another kernel, the disk, a process, a browser, an MCP server — is an IO leg, sealed until opened.
Memory
Every message lives in a memory store agent; AI agents fold, recall and page their own history.
What's in the box
AI agents
vLLM, Ollama, the OpenAI Responses API and Anthropic’s Messages API — plus Apple’s on-device model in Swift. Tool calling uses the kernel’s own prompt-taught grammar, so any capable model drives the same verbs.
IO legs
Files, edits, streams and watches clamped to the running dir; allow-listed commands and PTY terminals; browser and HTTP faces; kernel-to-kernel links; a remote MCP server’s tools as verbs.
Folder bundles
Drop bundles/<name>/bundle.yaml plus a program into .fantastic/ and it becomes a new kind of agent — hot-reloadable.
Kernel services
A scheduler, credentials by reference with secret fields masked in records and events, a persistent tree on disk, and a task table with Unix-style ps / cancel.
Install
From crates.io
Needs Rust 1.88 or newer and a C compiler (Xcode Command Line Tools on macOS, build-essential on Linux). All four AI backends are on by default.
cargo install fantastic
Prebuilt binary (Apple silicon)
curl -LO https://github.com/aisixteen/fantastic/releases/latest/download/fantastic-aarch64-apple-darwin.tar.gz tar xzf fantastic-aarch64-apple-darwin.tar.gz && sudo mv fantastic /usr/local/bin/
Or start with your coding agent
Open Claude Code, Codex, Gemini CLI or any CLI agent in a project folder and paste:
Run `fantastic` and read what it prints. Explain to me what it is, then ask me how I want to run it.
Run from an agent's shell, fantastic starts in doc mode: it prints its readme and command list, and starts and writes nothing.
fantasticthe terminal UIfantastic canvasthe browser canvasfantastic ai vllm -p PORTthe root AI on a backendfantastic run CMDyour own program in a terminal cellfantastic mcpMCP over stdio for a coding CLIfantastic readme [key]the docsFour runtimes, one protocol
Interchangeable hosts share one wire protocol and one .fantastic/ workdir. A shared contract corpus pins identical behaviour across them, and model-driven end-to-end tests score live models by what they built — not by what they said.
Python
The reference. When runtimes disagree, Python is right.
Rust
Server and CLI host — the fantastic binary.
Swift
Apple platforms, linked in-process by the Apple client.
TypeScript
The browser frontend kernel, served by any host.
The Fantastic family
Fantastic CLI & canvas
A terminal coder, a browser canvas where you build and run your own systems visually with an AI, and an MCP face for coding CLIs. macOS and Linux, arm64 and x86_64.
Apple client
A native SwiftUI app for Mac, iPhone, iPad, Vision Pro and Apple Watch that runs the Swift kernel in-process — or attaches to a remote kernel over SSH, with no difference in architecture.
Relay
A relay-kernel that turns connected kernels into agents: an addressable router with a live directory, so kernels reach each other through NAT and firewalls.
Deny-all by default. Nothing is open by default. Every IO leg denies until an operator opens it, grants are explicit on both ends of a call, an agent never raises its own authority, and file access is clamped to the directory the kernel runs in. One root reflect shows the whole landscape.
Try Fantastic
Free and open source under AGPL-3.0-or-later. Alpha — expect sharp edges, and tell us what you build.
cargo install fantastic