An open-source mobile app for running persistent AI coding sessions on your own SSH-accessible machine via tmux. Built as a chat-first Expo / React Native frontend backed by a Rust core over FFI.
timu lets you connect your phone to a VPS, local Mac, or any SSH-accessible machine and drive coding agents such as Codex, Claude Code, and OpenCode through a WhatsApp-style chat UI. The actual session runs inside a tmux pane on your machine, so it survives app restarts, network drops, and switching devices.
V0 covers:
- Save SSH machine profiles (host, user, port, auth method kind)
- Test the SSH connection with clear, actionable errors
- Verify machine readiness (
tmux,git, Node package managers, agent CLIs) - Pick a project folder and start a tmux-backed agent session
- Chat with the agent while raw terminal output stays available as a fallback
- Resume the same session after closing or losing the app
- Language: Rust 2024 (core library), TypeScript (mobile app)
- Frontend: Expo / React Native with Expo Router
- Core: Rust library crate (
timu-core) exposed to RN via FFI (UniFFI planned) - Pairing:
timu-pairnative CLI, distributed throughnpx timu-app - Data: SQLite via
rusqlite(Rust-owned; no cloud sync in V0) - Transport: SSH (
russh), SFTP (russh-sftp), tmux on the user's own machine - Hosting: App Store / Play Store target; no hosted backend
cd timu-core
cargo test
cargo buildcd timu-pair
cargo test
cargo clippy --all-targets -- -D warnings
cargo build --releasecd timu-npx
npm install
npm testcd timu-app
npm install
npm run devRequirements:
- Rust stable ≥ 1.96
- Node.js 20+ and npm
- An SSH-accessible machine with tmux installed
- One of Codex, Claude Code, or OpenCode on the host for agent sessions
No .env or cloud backend is required for V0.
Core modules:
timu-core/— Rust library: SSH transport, host-key TOFU pinning, machine readiness, folder listing, SQLite persistence, tmux session enginetimu-app/— Expo / React Native UI (chat-first, drives timu-core over FFI)timu-pair/— Native pairing CLI that runs the one-time QR-based onboarding ceremonytimu-npx/—npx timu-applauncher: downloads the platform binary and verifies release-artifact checksums before running it
Documentation:
AGENTS.md— Master project context and hard-block security rulesdocs/prds/v0-prd.md— V0 product requirementsdocs/features/— Feature-specific documentationdocs/infra/— Architecture decisions, schema, testing philosophy
Full project documentation lives in:
AGENTS.md— Master context: identity, security rules, tech stack, conventionsdocs/prds/v0-prd.md— V0 product requirements and user flowsdocs/features/— Feature-specific docs (timu-core, onboarding CLI, etc.)docs/infra/— Architecture decisions, schema, API contracts, deployment, testing
Open app
→ Connect a machine
→ Choose auth method
→ Test SSH connection
→ Save machine
→ Check readiness
→ Fix tmux if missing
→ Pick folder
→ Pick agent
→ Start tmux session
→ Chat with coding agentA user can:
- connect their SSH machine from mobile
- save the connection
- detect whether
tmuxand agents are installed - choose a project folder
- start a tmux-backed agent session
- close the app
- reopen the app
- resume the same session
- send messages through a simple chat UI
- SSH secrets (passwords, private keys, passphrases) never live in the persisted
MachineProfile; they stay in platform secure storage and are supplied at connect time. - Host keys are verified with trust-on-first-use (TOFU): the fingerprint is shown to the user on first connect and pinned for every subsequent connect.
- The one-time
npx timu-apppairing credential is short-lived, restricted to a single forced operation, and cleaned up on success, timeout, interruption, or failure. - V0 has no analytics, telemetry, cloud accounts, or hosted backend.
See AGENTS.md §2 for the full hard-block security rules.
cargo testinsidetimu-core/runs unit and integration tests.cargo testinsidetimu-pair/runs the pairing CLI integration suite (26+ tests covering QR validation, authorized-keys handling, symlink safety, cleanup, concurrency, and fixture schemas).npm testinsidetimu-npx/tests launcher behavior and release-artifact checksum verification.
Testing philosophy: docs/infra/testing.md.
[License TBD]