open-beads-weighted-tmux-agent-sessions
Made by JeffSpawn weighted multi-agent tmux swarms based on project bead backlogs. Use when allocating agents by workload, creating cc/cod/agy sessions, handling usage limits, or orchestrating agents without NTM.
Works With
Quality and Utility come from canonical skill metadata. Community ratings appear separately as stars when subscriber reviews exist.
Subscribe to download
Public previews are available, but downloads, CLI sync, and premium content require an active subscription.
Sign In to Subscribe- Full skill content with deterministic versioning
- CLI sync + local search index
- Access to Jeffrey’s premium library
Save to your account
Saved skills live in your cloud list. Run jsm sync on each machine to pull them locally.
What's New with this Skill
2Updates, enhancements, and release notes for this skill.
Updated: open-beads-weighted-tmux, agent allocation uses the real open-bead count
The allocation step counted open beads with br list --json | jq length, which counts the keys of br's JSON envelope and returned 5 for every project, so the backlog weighting was meaningless. It now uses br count --status open --json. The skill also notes that tmux window and pane indexes start at 0 unless base-index is set, and gives macOS equivalents for the Linux-only commands.
- Open-bead counts come from br count, not the length of br's JSON envelope (which was always 5)
- tmux window and pane indexes start at 0 unless base-index is set to 1
- macOS paths and pgrep flags added
Checked against br 0.6.0, tmux 3.6a and ntm's help output.
- Backlog count.
br list --jsonreturns an envelope (issues,total,limit,offset,has_more), sojq 'length'always returned 5. The scripts and allocation reference now usebr count --status open --json | jq '.count'. - tmux indexes.
base-indexandpane-base-indexdefault to 0; the:1.1targets assume both are set to 1, and the skill now says so. - macOS.
/usr/bin/tmuxis the Linux path, and macOSpgrep -ameans include ancestors; the macOS form ispgrep -lf -P.
New skill: open-beads-weighted-tmux-agent-sessions, agent headcount set by each project's open-bead backlog
Counts the open beads in every project, then staffs each one from a three-tier table: 400 or more open beads get 4 cc (Claude Code), 4 cod (Codex) and 2 agy (Antigravity CLI) agents, 100 to 399 get 3/3/2, and under 100 get 1/1/1. The agents run in plain tmux, three sessions per agent type with identical pane geometry, for when you want that control without NTM.
- Headcount follows the backlog: 400 or more open beads gets 4 cc, 4 cod and 2 agy agents, 100 to 399 gets 3/3/2, and under 100 gets 1/1/1. A project with no open beads gets none.
- Open beads are counted per project with br list --status open --json piped to jq length, across every directory that has a .beads folder, sorted largest first.
- The worked example allocates a 15-project sample to 37 cc, 37 cod and 25 agy agents, then spreads each type across three tmux sessions.
- All sessions of one agent type share the same pane geometry, so 37 agents become 13, 12 and 12 panes, or 12 each with one agent left unallocated.
- Every command uses /usr/bin/tmux, because a zsh tmux plugin intercepts the bare tmux command. Panes are addressed as session:1.pane, numbered from 1.
- Marching orders go out slowly: 0.3 seconds before each Enter and 0.5 seconds between panes. Codex panes often need a second Enter before pasted text submits.
- agy panes (the Antigravity CLI) get a review prompt instead of implementation work: trace code through its imports and fix the bugs found with fresh eyes.
- A capture-pane scan finds agents that hit a limit by each CLI's own message: "You've hit your limit" for cc and "You've hit your usage limit" for cod.
- Recovery is /exit, ten rounds of Ctrl+C, clear, an account switch by a human, a respawn and the prompt again. A pane that ignores all of it has its child process killed by PID.
- Use it for manual tmux control over weighted allocation across many projects. The ntm and vibing-with-ntm skills cover swarms that NTM manages.
The skill starts by counting. A loop runs br list --status open --json | jq length in every project directory that has a .beads/ folder and sorts the results largest first; a project with no open beads drops out. Each remaining project is staffed from one table: 400 or more open beads gets 4 cc, 4 cod and 2 agy agents, 100 to 399 gets 3/3/2, and fewer than 100 gets 1/1/1. The worked example in references/ALLOCATION.md takes a 15-project sample to 37 cc, 37 cod and 25 agy agents.