Skip to content

Repository files navigation

Tutti · Rust

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.

License Original


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.

What is Tutti?

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:

  1. 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.
  2. Apps that both you and your agents can use — image generation, UI/UX design, docs, presentations — shared in real time across the workspace.
  3. 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.

Repository shape

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)

Quick start

Prerequisites

  • Rust (stable, ≥ 1.80) — install via rustup
  • SQLite (bundled by rusqlite by default; no system install required)

Build

cargo build            # build the whole workspace
cargo build -p tuttid  # build just the daemon
cargo build -p tutti   # build just the CLI

Run

# Start the daemon
cargo run -p tuttid -- run

# In another terminal, talk to it
cargo run -p tutti -- doctor

Lint & format

cargo fmt --all
cargo clippy --all-targets -- -D warnings

Migration status

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

Contributing

See CONTRIBUTING.md. Read the closest AGENTS.md before editing a crate — area-specific files win over repository-wide defaults.

License

Apache-2.0, inherited from the upstream tutti project. See LICENSE.

About

Rust port of Tutti - where people and agents build in tune. A real-time shared workspace for AI agents.

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages