Skip to content

floomhq/moto

Repository files navigation

moto 🛵

A terminal IDE for AI agents, extracted from 500+ real sessions

License: MIT Claude Code

moto is Floom's terminal IDE for AI agents: Claude as the control plane, Codex for backend/infra/debugging, opencode as an optional worker, subagent workflows, Docker-first runtime, CLAUDE.md / AGENTS.md-style context, safety hooks, 60+ skills, Gmail/WhatsApp integrations, memory, browser automation, and cost tracking.

Formerly buildingopen/moto. Old GitHub URLs redirect.

moto hook demo
A safety hook firing on a destructive command.


Who is this for?

  • Founders/operators turning repeated work into software with agents
  • Claude Code / Codex users who want a real operating environment instead of one-off prompts
  • Terminal-first builders running multiple agents on a Mac + remote Linux box
  • Teams standardizing agent rules, hooks, skills, memory, and remote runtime
  • Anyone burned by agents running destructive commands, leaking secrets, or claiming success without fresh evidence

What makes this different?

Most AI coding setups are a prompt file plus a pile of tools. moto is the full operating environment: context, hooks, skills, memory, terminal sessions, remote server runtime, browser automation, Docker sandboxes, and launcher commands for Claude, Codex, and opencode.

The philosophy is simple:

  • context before prompting
  • wireframes before UI code
  • Docker before SaaS integrations
  • subagents before monolithic chats
  • cheap models for mechanical checks
  • expensive models for judgment
  • complexity only after real usage earns it

Quick Start

git clone https://github.com/floomhq/moto.git
cd moto
./install.sh          # Symlinks configs into ~/.claude/

That's it. The installer detects existing configs, backs them up, resolves $HOME paths in hook commands, and installs 17 hooks + 7 scripts + 60+ skills + memory template. Run ./install.sh --copy for standalone files instead of symlinks.

For the full remote workstation from the same repo:

cp .env.example .env
$EDITOR .env
./install.sh mac
./install.sh server-remote

After install:

  1. Edit ~/.claude/CLAUDE.md to match your workflow (search for <!-- Customize --> comments)
  2. Copy claude/CLAUDE-project.md into your project roots
  3. Optionally copy .env.example to .env for API keys used by some hooks/scripts

Comparison

bare Claude Code Claude Code + dotfiles moto
Context manual per session static files CLAUDE.md + AGENTS.md + MEMORY.md
Safety none none 17 hooks blocking destructive commands, secret leaks, config tampering
Remote workflow DIY SSH DIY SSH moto up + SSHFS + systemd + tmux
Skills none none 60+ slash commands (/cost, /qa, /ship, /debug, etc.)
Sidecars none none Groq / Gemini / NVIDIA routing for cheap stateless work
Memory none none MEMORY.md auto-updated across sessions
Cost tracking none none Per-model, per-session token costs
Browser none none Chrome CDP automation via skills
Messaging none none WhatsApp + Gmail integrations

Architecture

moto splits agent work between a Mac control plane and a remote Linux runtime. The Mac stays where the human works, while the server owns long-running sessions, containers, cheap sidecar calls, browser automation, and messaging integrations.

flowchart LR
  subgraph Mac["Mac control plane"]
    IDE["IDE + terminal"]
    Claude["Claude Code"]
    Codex["Codex backend/debug"]
    Browser["Local browser"]
  end

  subgraph Link["Connection layer"]
    SSHFS["SSHFS"]
    Systemd["systemd"]
    Tunnels["SSH tunnels"]
  end

  subgraph Linux["Remote Linux runtime"]
    Tmux["tmux sessions"]
    Docker["Docker containers"]
    CDP["Chrome CDP"]
    Messaging["WhatsApp + Gmail"]
  end

  subgraph Surfaces["Agent surfaces"]
    Skills["60+ skills"]
    Hooks["17 safety hooks"]
    Memory["MEMORY.md"]
    Slash["slash commands"]
  end

  subgraph Sidecars["Stateless sidecars"]
    Groq["Groq"]
    Nvidia["NVIDIA"]
    Gemini["Gemini"]
  end

  IDE --> Claude
  Claude --> Codex
  Browser --> Claude
  Claude --> SSHFS
  Claude --> Systemd
  Claude --> Tunnels
  SSHFS --> Tmux
  Systemd --> Tmux
  Tunnels --> Tmux
  Tmux --> Docker
  Tmux --> CDP
  Tmux --> Messaging
  Claude --> Skills
  Hooks --> Claude
  Memory --> Claude
  Slash --> Claude
  Skills --> Tmux
  Tmux --> Groq
  Tmux --> Nvidia
  Tmux --> Gemini
Loading

Read the deep dive: docs/architecture.md


What's included

Directory Contents Learn more
claude/ CLAUDE.md, hooks, scripts, skills, memory claude/skills/README.md · claude/hooks/README.md · claude/memory/README.md
mac/ moto CLI, iTerm automation, shell aliases, launchd + SSH templates mac/README.md
server/ Systemd services, Docker stack, safety utils, browser automation, tmux docs/bootstrap.md
whatsapp/ OpenClaw gateway, verified send, SQLite contact lookup whatsapp/README.md
gmail/ IMAP checker, multi-account support gmail/
cron/ Job templates, health checks, safe-pipeline patterns cron/

FAQ

Do I need a remote server? No. ./install.sh works locally. Add ./install.sh mac + ./install.sh server-remote only when you want the integrated remote workflow.

Does this replace Claude Code? No. It's the operating environment around Claude Code (and Codex, and opencode). You still use Anthropic's CLI; moto just makes it reliable, safe, and reproducible.

Is this safe? 17 hooks run on every tool call blocking rm -rf /, secret leaks, wrong package managers, unverified WhatsApp sends, and more. See claude/hooks/README.md.

How much does it cost? The repo is free. Hooks track your Claude/Codex token spend to costs.jsonl. Sidecars route bounded work to free/cheap models so you burn premium tokens on judgment, not mechanical tasks.

Can I use only the hooks? Or only the skills? Yes. The installer is modular. Pick what you need.


Requirements

Requirement Required? Used by
Claude Code CLI Yes Everything
jq Yes All hooks (JSON parsing)
python3 Optional Gemini audit hook, email checker
gitleaks Optional Secret scanning hook

Configuration

After running install.sh:

  1. Edit CLAUDE.md — Search for <!-- Customize --> comments and replace placeholders with your setup
  2. Add project configs — Copy claude/CLAUDE-project.md to each project root
  3. API keys (optional) — Copy .env.example to .env for hooks/scripts that need external APIs

The settings.json file has $HOME paths pre-resolved by the installer. Re-run ./install.sh to pick up changes.


Related Projects

Other open-source tools from BuildingOpen:

Project Description
bouncer Independent Gemini quality gate that audits Claude Code's output before it can stop
claude-code-stats Spotify Wrapped for Claude Code. Visualize your AI coding stats, token usage, and costs
claude-wrapped Visualize your Claude Code stats with npx claude-entropy
hook-stats Analyze your Claude Code bash command log
session-recall Search and recover context after Claude's automatic compaction
browse Browser automation CLI with autonomous agent mode via CDP
openbrowser Give AI your browser. Check email, track orders, download receipts. MCP server + CLI
openqueen Autonomous coding agent controlled by WhatsApp/Telegram. Gemini orchestrates Claude/Codex
blast-radius Find all files affected by your changes. One bash script, zero dependencies
dep-check Find dead imports in your project. One bash script

Changelog

See CHANGELOG.md.


License

MIT

Releases

No releases published

Packages

 
 
 

Contributors