# create-walle

Set up **CTM + Wall-E** in one command — a browser-based command center for AI coding agents, remote phone and tablet access, review workflows, and a personal AI agent that builds a searchable second brain from your work life.

## What You Get

### CTM (Coding Task Manager)

A web dashboard for running and managing AI coding sessions across multiple providers.

- **Terminal Multiplexer** — Run Claude Code, Codex, Gemini CLI, Aider, OpenCode, Cursor Agent, and more side by side with live status, persistent scrollback, model switching, and AI-generated titles
- **Prompt Editor** — Save, version, and organize prompts with folders, tags, chains, templates, and AI search
- **Task Queue** — Queue prompts for sequential execution with auto-advance when the agent finishes, or step through manually
- **Approval Workflows** — Auto-approve tool-use requests based on learned rules; uncertain cases escalate to you
- **Remote Phone & Tablet Access** — Pair your phone or tablet with a QR code and use a responsive CTM UI over Microsoft Dev Tunnels, Tailscale, Cloudflare Tunnel, or Walle Remote, with live prompts and model controls
- **Code & Doc Review** — Review git diffs and Markdown docs side by side, add anchored comments, and send feedback into an agent session or queue
- **Model Registry** — Manage providers (Anthropic, OpenAI, Google, DeepSeek, Ollama, LM Studio, MLX, and CLI subscription providers), compare pricing, switch models per session
- **Session Insights** — Analyze patterns across sessions to optimize prompts and workflows

### Wall-E (Personal Digital Twin)

An always-on AI agent that learns from your Slack, email, calendar, and coding sessions.

- **Second Brain** — Automatically ingests your digital life and coding sessions into a searchable memory store with full-text search, knowledge extraction, and pattern detection
- **Proactive Intelligence** — Surfaces time-sensitive items, suggests actions, and delivers morning briefings and weekly reflections without being asked
- **Chat with Tools** — Talk to Wall-E in the browser — it can search memories, recall prior coding sessions, look up people, run skills, and call external tools via MCP
- **21 Bundled Skills** — Morning briefing, weekly reflection, proactive alerts, Slack monitoring, email sync, calendar integration, coding agent, memory search, model training, model pricing sync, and more
- **Multi-Model** — Works with Claude, GPT, Gemini, DeepSeek, and local models via Ollama, LM Studio, or MLX with smart routing
- **Skill Management GUI** — Search, filter, create, edit, and monitor skills from the browser with rich cards, config forms, execution history, export/import, and pre-flight validation
- **Multi-Device** — Share your brain across machines via Dropbox or iCloud

## Install

```bash
npx create-walle install ./walle
```

This copies the project, installs dependencies, auto-detects your name and timezone, and starts the server. Open **http://localhost:3456** to finish setup in the browser, then pair your phone or tablet from Setup if you want remote access.

## Commands

```bash
npx create-walle install <dir>   # Install CTM + Wall-E (or update if already installed)
npx create-walle update          # Update to latest version, keep your config
npx create-walle start           # Start as background service (auto-restarts on reboot)
npx create-walle stop            # Stop the service
npx create-walle status          # Check if running
npx create-walle logs            # Tail the service logs
npx create-walle uninstall       # Remove the auto-start service
npx create-walle -v              # Show version
```

Install, update, and start verify Node-native modules such as `better-sqlite3`
against the exact Node.js binary Wall-E will use. If you switch Node versions,
Wall-E automatically runs the needed `npm rebuild` before starting so CTM does
not crash with a `NODE_MODULE_VERSION` mismatch.

### Pinning Node (optional — for machines with more than one Node)

On a machine with a **single** Node, the auto-rebuild above is all you need.
But if you have **two or more** Node versions (e.g. a system Node *and* a
Homebrew Node, or you switch with `nvm`/`fnm`), the daemon and a background skill
can run under different majors and fight over the one compiled `better-sqlite3`
binary — each rebuild flips its ABI and the other side crash-loops with
"MCP never became ready".

To stop that, lock CTM + Wall-E to one Node:

```bash
bash bin/pin-node.sh          # pin to your current node version
bash bin/pin-node.sh 22.12.0  # …or an explicit version
bash bin/pin-node.sh --unpin  # revert to the default (auto-rebuild) behavior
```

This writes a `.node-version` so the launchers always resolve that exact Node
and the daemon refuses to start under a different major (with a clear message)
instead of silently corrupting the native binary. Existing installs adopt it the
moment you run the command — nothing else changes.

## Setup

On first launch, the browser setup page guides you through:

1. **Owner name** — auto-detected from `git config`
2. **API key** — enter manually, or click "Auto-detect" to find it from your shell environment, Claude Code OAuth, or corporate devbox
3. **Integrations** — connect Slack (OAuth), email and calendar auto-detected on macOS
4. **Remote phone and tablet access** — optional QR pairing with Microsoft Dev Tunnels, Tailscale, Cloudflare Tunnel, or Walle Remote, including touch-friendly prompts and model controls

## Custom Port

```bash
CTM_PORT=5000 npx create-walle install ./walle
```

Wall-E runs on `CTM_PORT + 1` (e.g., 5001).

## Architecture

Everything runs locally. CTM serves the dashboard, Wall-E runs as a background agent. Both use SQLite — no external databases, no cloud dependency beyond your LLM API keys.

| Component | Default Port | What it does |
|-----------|-------------|--------------|
| CTM | 3456 | Dashboard, multi-agent terminal, prompt editor, queue, model registry, code/doc review, remote phone/tablet UI |
| Wall-E | 3457 | AI agent, brain database, skills engine, multi-model chat API |

## Links

- [Homepage](https://walle.sh)

## License

MIT
