Where people and agents build in tune.
A Rust port of Tutti — a real-time shared workspace where context, files, apps, and tasks are connected across AI agents.
Note
This is an early-stage, in-progress Rust port of the original tutti monorepo (TypeScript + Go). The crate layout mirrors the upstream structure so modules can be ported one at a time. Most crates are currently scaffold placeholders — see MIGRATION.md for the mapping and progress.
Tutti is a real-time shared workspace for AI agents (Claude Code, Codex, Canvas, and others). Instead of copy-pasting context between agents, they share one workspace where context, files, running tasks, and apps are all connected.
Three core capabilities:
- A real-time shared workspace — agents see each other's changes, running
tasks, and project state.
@references pull in past conversations, files, app invocations, and tasks;+references local files or app outputs. - Apps that both you and your agents can use — image generation, UI/UX design, docs, presentations — shared in real time across the workspace.
- Task orchestration — agents from different providers collaborate without getting in each other's way, deciding what runs in parallel vs. sequence.
See the upstream README for the full product description.
This is a Cargo workspace that mirrors the upstream monorepo layout. Business
logic lives in services/tuttid; the desktop shell and CLI are thin clients.
| Path | Crate | Role | Upstream |
|---|---|---|---|
services/tuttid |
tuttid |
Daemon: business rules, durable state, workflows | services/tuttid (Go) |
apps/cli |
tutti |
Command-line interface | apps/cli (Go) |
apps/desktop |
tutti-desktop |
Desktop shell (Tauri port) | apps/desktop (Electron) |
packages/events/protocol |
tutti-events-protocol |
Event protocol types | packages/events/protocol |
packages/events/stream |
tutti-events-stream |
Real-time event streaming | packages/events/stream-go |
packages/agent/daemon |
tutti-agent-daemon |
Agent run orchestration | packages/agent/daemon (Go) |
packages/agent/runtimeprep |
tutti-agent-runtimeprep |
Agent runtime preparation | packages/agent/runtimeprep (Go) |
packages/agent/store-sqlite |
tutti-agent-store-sqlite |
Agent state (SQLite) | packages/agent/store-sqlite (Go) |
packages/appcli/core |
tutti-appcli-core |
App CLI core | packages/appcli/core (Go) |
packages/auth/bridge |
tutti-auth-bridge |
Auth bridge (shell ↔ tuttid) | packages/auth/bridge-go (Go) |
packages/workbench/service |
tutti-workbench-service |
Workbench backend | packages/workbench/service (Go) |
packages/workspace/files |
tutti-workspace-files |
File management | packages/workspace/files (Go) |
packages/workspace/issues |
tutti-workspace-issues |
Issue tracking | packages/workspace/issues (Go) |
- Rust (stable, ≥ 1.80) — install via rustup
- SQLite (bundled by
rusqliteby default; no system install required)
cargo build # build the whole workspace
cargo build -p tuttid # build just the daemon
cargo build -p tutti # build just the CLI# Start the daemon
cargo run -p tuttid -- run
# In another terminal, talk to it
cargo run -p tutti -- doctorcargo fmt --all
cargo clippy --all-targets -- -D warningsThe port is tracked module-by-module in MIGRATION.md. Each entry maps an upstream Go/TypeScript package to its Rust crate and notes the porting status.
See CONTRIBUTING.md. Read the closest AGENTS.md before
editing a crate — area-specific files win over repository-wide defaults.
Apache-2.0, inherited from the upstream tutti project. See LICENSE.