Small workshop tools for your terminal
tackle
tackle is your gear — a small set of workshop TUIs that live in your terminal, not in a browser tab. It's one Go monorepo where each tool is an independent binary you install on its own. First out of the box: proj, the agent-aware tmux session picker, and scratch, the per-directory scratchpad. A .tools family member in spirit — the gear you reach for, distinct from the single-purpose products.
$ proj SESSIONS ──────────────────┬─ PREVIEW ───────────────── › web claude·run ✉ │ ~/src/web · 3 windows api codex·idle │ ● claude working — infra — │ "GET /users missing createdAt" dotfiles — │ muster: 1 reply · 2m ago ↑↓ move · ⏎ attach · / filter · q quit
what it's for
The rest of the .tools family are single-purpose products — a coordination bus, a review tool, a setup engine. tackle is the other kind of thing: the small, sharp tools you keep on the bench and reach for all day. The name is the double meaning — your tackle is the gear you work with, and it's what you do to a task. Everything here runs on your machine, keeps its state on your disk, and never phones home.
A single Go repository, github.com/schuettc/tackle, with one tool per
cmd/ directory. Shared house style, shared plumbing, but each tool ships as
its own independent binary — you install only the ones you want.
These are TUIs, built with Bubble Tea. They open where you already are — inside tmux, in a shell — do one job, and get out of the way. No daemon to babysit, no browser, no account.
tackle's tools know you're running coding agents. proj reads which agent is live in each session and surfaces muster attention right in the picker, so the way in to a work session already tells you what's waiting there.
Like the rest of the family: your machine, your disk, no telemetry. Open source under the MIT license, with the source and every binary path on GitHub.
the tools
Two tools ship today, each installable on its own. More will join the monorepo over time — the shape is deliberately open, a shelf you add to.
the agent-aware session picker
The way in to a work session. proj lists your live tmux sessions with the agent running in each, its state, and any muster attention flag — with a preview pane, per-project tmux servers, and a configurable sidebar. Pick a session, attach, get to work.
the per-directory scratchpad
The notes pane of every workspace. scratch opens a scratchpad scoped to the directory you're in — a place to jot the thing you'll need in ten minutes without leaving the terminal or polluting the repo. Each directory keeps its own.
proj
proj is a Bubble Tea picker for the sessions you actually work in. It doesn't just list tmux sessions — it reads what's happening in each one: which agent is live, whether it's running or idle, and whether muster is holding mail for it. The highlighted session previews on the right, so you choose with context instead of guessing from a name.
Every tmux session, with the coding agent running inside it and its current
state — claude·run, codex·idle — resolved live, not from a
stale cache.
A session waiting on muster mail carries a ✉ flag in the list, so the picker doubles as a glance at which work sessions need you.
The highlighted row previews to the right — the working directory, windows, the agent's current activity — so you attach to the right session the first time.
proj understands one tmux server per project (the proj-<name>
socket convention muster uses), scoping the picker to a project or spanning them all.
The sidebar is yours to arrange — pin the projects and sessions you live in, order them the way your day runs.
proj is the front door to a work session: open it, read the room, attach. It's the first thing you run and the thing you come back to between tasks.
install
Each tool is its own binary under cmd/, so you install exactly the
ones you want with go install. A one-line domain installer
(curl tackle.tools/install.sh | sh) is coming once tackle.tools is live; until
then, build from source with Go.
# install proj — the agent-aware session picker $ go install github.com/schuettc/tackle/cmd/proj@main # install scratch — the per-directory scratchpad $ go install github.com/schuettc/tackle/cmd/scratch@main # then just run one $ proj
A curl -fsSL https://tackle.tools/install.sh | sh path
will land once tackle.tools is live and binaries are published. For now,
go install from the monorepo is
the way in.