swicken

Tiller — Communication skill for Claude Code

Communication community

Local daemon + Claude Code mods for spawning, messaging and controlling agent sessions.

How to install Tiller

This entry records only its repository, not the path inside it, so there is no exact command to give. Open swicken/tiller and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Tiller does

Local daemon + Claude Code mods for spawning, messaging and controlling agent sessions.

Alternatives in Communication

  • Gtm Strategy — Create GTM strategy with channels, messaging, and launch timeline 7.8k ★
  • Lark Coding Agent Bridge — Bot that bridges Feishu/Lark messenger with a local Claude Code or Codex CLI 2.4k ★
  • Hermes Bot Mode — Bot Mode for the Hermes desktop: a roster of named agents with their own chats, avatars, routines, and bot-to 650 ★

README

tiller

tiller

Tiller is a local daemon that runs several agent CLI sessions (Claude Code or Pi) as child processes, called nodes, and lets one of them, the orchestrator, spawn, message and watch the others. A root node (one with no parent) is an orchestrator; a node it spawns is a worker. The main front end is a native macOS app built with Tauri; the same UI runs in a browser. A Claude Code mod or Pi extension loaded into each agent node delivers messages and reports lifecycle events.

Requirements

  • macOS with the Xcode Command Line Tools (`xcode-select --install`); the native app is built with Tauri, which needs them.

  • Node 24 and your chosen agent CLI on your PATH: `claude` (Claude Code), or compatible `pi` (`@earendil-works/pi-coding-agent` 1.2.x). See [docs/harnesses.md](docs/harnesses.md) for Pi setup and limitations.

  • Rust, installed through Homebrew's rustup:

    brew install rustup
    /opt/homebrew/opt/rustup/bin/rustup-init -y

    Homebrew's rustup is keg-only, so `cargo` is not on your PATH by default. `bin/tl-app` adds `/opt/homebrew/opt/rustup/bin` itself; to run `npm run app:build` or `cargo` from your own shell, add that directory to your PATH (for example `export PATH=/opt/homebrew/opt/rustup/bin:$PATH` in `~/.zshrc`).

  • Optional: `terminal-notifier` (`brew install terminal-notifier`), so clicking a macOS notification selects the node.

Install

npm install && npm link
npm run app:build

`npm install && npm link` puts `tl` (the client), `tld` (the daemon in the foreground) and `tl-app` (the native app) on your PATH. `npm run app:build` builds the browser UI and then the unsigned app, `src-tauri/target/release/bundle/macos/Tiller.app`; the first build compiles the Rust dependencies and takes a few minutes. Without a built app, `tl` op