Skip to content

~ blackpaw studio

leo

Process supervision and task scheduling for Claude Code.

A thin wrapper around the claude CLI.
Persistent processes, ephemeral agents, scheduled tasks. Drive them from the CLI, a browser, or any chat app.

curl -fsSL leo.blackpaw.studio/install | sh

More install options ↓

What Leo does

Supervised processes

Long-running Claude Code sessions that run like a service. Each process gets its own workspace, model, and channel plugins.

Scheduled tasks

Cron-driven prompts that invoke Claude Code on a schedule. Write a prompt file, pick a cadence, walk away.

Agent templates

Reusable blueprints for ephemeral agents. Preset the model, MCP, and workspace, then dispatch a session on demand.

Attachable sessions

Every process and agent runs in its own named tmux session. Drop in live, locally or over SSH, and take over mid-flight.

Remote CLI

One binary, two roles. Run the supervisor on a server and drive it from your laptop over SSH.

Web dashboard

Processes, tasks, config, and agents, all from a browser on your LAN.

See Leo in action

leo
$ leo agent spawn coding --repo blackpaw-studio/leo --worktree feat/cache
spawned leo-coding-blackpaw-studio-leo-feat-cache (branch: feat/cache)
attach with: leo agent attach leo-coding-blackpaw-studio-leo-feat-cache

$ leo task add --name weekly-audit --schedule "0 9 * * 1" --prompt-file audits/weekly.md
Task "weekly-audit" added.

Monday 09:00: weekly-audit running, complete in 38s
Notification: telegram · weekly audit: 4 PRs need attention
    

channels

Control Leo from your pocket.

Pair any Claude Code channel plugin (Telegram, Discord, iMessage) and drive supervised processes, scheduled tasks, and ephemeral agents from chat. Leo ships a universal command set, so every stock plugin gets /tasks, /agent, /stop, and /clear for free.

  1. Install a channel plugin

    claude plugin install telegram@claude-plugins-official

    Want voice replies, inline ask-prompts, and richer attachment handling? Swap in our fork, blackpaw-telegram.

  2. Pair your account

    DM the bot and paste the pairing code back into your session. Flip to allowlist once you’re in.

  3. Reference it in channels:

    Add plugin:telegram@claude-plugins-official to any process or task. Leo routes every inbound command through a shared MCP server. No plugin changes required.

  4. Give your bot a personality

    Pin a subagent with agent: on the process that owns the channel. The supervised session adopts that role and voice, and every reply in chat comes back in the same tone.

leo
online
You: what shipped on leo-website today?
leo: Three commits landed on main: hero CTA linking to the examples guide; footer link to the docs examples page; real Blackpaw paw mark in the footer and favicon.
You: /tasks
leo: You have 3 scheduled tasks: weekly-audit (0 9 * * 1, next Mon 09:00), daily-triage (0 9 * * *, tomorrow 09:00), release-digest (0 17 * * 5, Fri 17:00).
You: /agent coding blackpaw-studio/leo
leo: Spawned as leo-coding-blackpaw-studio-leo. Attach in the Claude app when you’re ready.
        

Install

curl -fsSL leo.blackpaw.studio/install | sh

Requires Claude Code CLI and tmux.

Then run leo setup to get started.