Manual · 0.7マニュアル · 0.7
Everything junban does, and how to tune it.
junban の機能と設定
junban badges each tmux tab with its agent's state and takes you to the one that needs you. You only need Alt+a; the rest is here for when you want it. Everything below matches the current release.
junban は tmux の各タブにエージェントの状態の印を付けます。Alt+a を押すと、次に対応すべきウィンドウへ移動します。覚えるのは Alt+a だけで十分です。ほかの機能は、必要になったときにここで調べてください。内容は最新版に合わせています。
Contents目次
Get startedインストール
Run this in a terminal. It installs junban, adds it to your tmux config (and reloads tmux if you run it inside tmux), and connects Claude Code if you have it.
ターミナルで次のコマンドを実行します。このスクリプトは junban を ~/.tmux/plugins/junban に置き、tmux の設定ファイルに読み込みの行を足します。tmux の中で実行していれば、設定も読み込み直します。Claude Code が入っていれば、junban のプラグインも入れます。
curl -fsSL https://raw.githubusercontent.com/Nameless-LLC/junban/main/install.sh | bash
With TPM (the tmux plugin manager), add set -g @plugin 'Nameless-LLC/junban' to ~/.tmux.conf, press prefix I, then connect Claude Code:
tmux のプラグイン管理ツール TPM を使う場合は、~/.tmux.conf に set -g @plugin 'Nameless-LLC/junban' を足して prefix I を押してから、次のコマンドで Claude Code に junban のプラグインを入れます。
claude plugin marketplace add Nameless-LLC/junban && claude plugin install junban@junban
Needs tmux 3.2 or newer, bash and git. python3 and fzf are optional but recommended: python3 adds the badge fix after Esc, window names, recaps and change summaries, the z mark for untouched windows, restoring windows after a restart, the timeline, Codex and Gemini setup, and the Alt+n worktree check; fzf sorts the Alt+f list by need and makes it searchable. Works on Linux and macOS.
必要なのは tmux 3.2 以上、bash、git です。python3 と fzf は任意ですが、入れておくのがおすすめです。python3 は、Esc で止めたときの印の自動修正、ウィンドウ名の自動設定、1行要約と変更内容の表示、再起動後のウィンドウの復元、タイムライン、放置したウィンドウに付く z、Codex・Gemini の設定、Alt+n の worktree の判定に使います。fzf があると、Alt+f の一覧が返事待ち・完了の順に並び、文字を打って絞り込めます。Linux と macOS で動きます。
New Claude Code sessions report their state from the first prompt; in a session already open, run /reload-plugins. Press Alt+/ any time for the keys.
インストール後に新しく始めた Claude Code のセッションでは、最初の依頼から印が付きます。すでに開いているセッションでは /reload-plugins を実行してください。キーを忘れたら、いつでも Alt+/ を押してください。
Badges状態の印
Each tmux tab shows what its agent is doing.
tmux の各タブに、そのエージェントの状態を示す印が出ます。
| Badge | 印 | Meaning | 意味 |
|---|---|---|---|
| ✋ | Waiting on you: a question, or permission to run something. Clears when you answer.あなたの返事待ち(質問、または実行の許可)。返事をすると消えます。 | ||
| ✓ | Finished, and you haven't looked yet. Clears the moment you open the window, or switch back to a terminal that shows it.作業が終わり、まだ確認していません。そのウィンドウを開くか、そのウィンドウを表示しているターミナルに戻ると消えます。 | ||
| ● | Working.作業中。 | ||
| ● 23m● 23分 | Working, but no tool call has finished in 23 minutes. The agent may be stuck on a command or a network call. The ● turns orange after 15 minutes by default (@junban-quiet-minutes, 0 = off) and shows how long the agent has been silent. Clears when the next tool call finishes, or when the agent waits on you or finishes. A long build or test run turns it orange too, as does a long answer with no tool call. Check the window before you stop anything.作業中のまま、23分間ツールの実行が1回も終わっていません。終わらないコマンドや、応答が返ってこない通信で止まっているかもしれません。この状態が一定の時間(既定は15分。@junban-quiet-minutes で変えられ、0 でオフ)続くと、● がオレンジになり、経過時間が出ます。経過時間は、作業中になったとき、またはそのあと最後にツールの実行が終わったときから数えます。次にツールの実行が終わるか、エージェントが返事待ちになるか作業を終えると、オレンジの表示は消えます。時間のかかるビルドやテスト、ツールを使わない長い応答でも ● はオレンジになるので、エージェントを止める前に、そのウィンドウの様子を確かめてください。 | ||
| ◌ | Starting: Alt+n opened it and the agent hasn't reported in yet. Clears when the agent's first hook fires, or after a minute. Until the agent draws anything, a spinner shows on the status line.起動中。Alt+n で開いたウィンドウで、エージェントがまだ起動を終えていない状態です。エージェントの最初のフックが動くか、1分たつと消えます。何か表示されるまでは、ステータスバーにスピナーが出ます。 | ||
| z | Untouched for a day (@junban-stale-hours). Sinks to the bottom of the Alt+f list.1日以上触っていないウィンドウ(時間は @junban-stale-hours で変えられます)。Alt+f の一覧ではいちばん下に並びます。 |
The right side of the status line counts agents across all sessions: ✋ waiting, ✓ finished, ● running. Next to it sits a small mascot whose face follows your agents:
ステータスバーの右側には、全セッションの件数(✋ 返事待ち・✓ 完了・● 作業中)が出ます。その隣には、状況に合わせて表情が変わるマスコットがいます。
[▮ ▮]! | an agent is waiting on youエージェントがあなたを待っている |
[◠ ◠] | an agent finished作業が終わった |
[▮▮ ] | agents are workingエージェントが作業中 |
[▮ ▮] | agents open, none working or waitingエージェントは開いているが、返事待ちも、未確認の完了も、作業中のものもない |
[▬ ▬]z | no agents openエージェントが開いていない |
Badges fix themselves
印は自動で直る
If you press Esc while Claude Code is working, it sends no "stopped" event, so a tool that only listens to hooks shows "working" forever. Every few seconds junban reads Claude Code's own session records in ~/.claude/sessions, matches each one to its pane through the process tree, and corrects the badge.
作業の途中で Esc を押すと、Claude Code は「止まった」というイベントを送りません。フックだけを見るツールでは「作業中」の表示が残り続けます。junban は数秒ごとに Claude Code 自身のセッション記録 ~/.claude/sessions を確認し、プロセスの親子関係からどのウィンドウかを確かめたうえで、印を直します。
Keysキー
If your terminal doesn't send Alt, use the prefix keys in the second column. For Alt+1…9, Alt+[ ], Alt+Tab, Alt+z and Alt+w, tmux's own prefix 1–9, p / n, l, z and & do the same.
Alt キーが使えないターミナルでは、表の「prefix」列のキーを prefix の後に押します。prefix 列が「—」の行のうち、ウィンドウの移動と操作(Alt+1…9・Alt+[ ]・Alt+Tab・Alt+z・Alt+w)は、tmux 標準の prefix 1…9・p/n・l・z・& で同じことができます。prefix で開けないのは設定(Alt+,)だけです。
| Key | キー | Prefix + | prefix | What it does | 動作 |
|---|---|---|---|---|---|
| Alt+a | a | Go to the agent that needs you most: ✋ before ✓, longest wait first.次に対応すべきウィンドウへ移動。✋ が ✓ より先で、同じ印の中では待った時間の長い順。 | |||
| Alt+f | f | Every agent in one list, neediest first, with a live preview.全エージェントの一覧。対応が必要な順で、中身のプレビュー付き。 | |||
| Alt+n | C | Start a new agent in this directory.今のディレクトリで新しいエージェントを起動する。 | |||
| Alt+, | — | Settings: what Alt+n starts, language, status line position and rows, the wait meter, ✓ in batches, the mascot and updates. A choice applies at once and is saved to ~/.config/junban/settings.conf. junban never edits tmux.conf unless you ask it to. If tmux.conf sets the same option after the plugin line, that line wins the next time tmux starts; the menu marks that option "⚠ tmux.conf", names the line, and offers to turn it into a comment (asking first, with a backup).設定。「Alt+n で起動するもの」「言語」「ステータス行の位置」「ステータス行の数」「待ち時間の表示」「✓ をまとめて表示」「マスコット」「アップデート」を変えられます。選んだ値はすぐに反映され、~/.config/junban/settings.conf に保存されます(頼まない限り tmux.conf は書き換えません)。tmux.conf のプラグインの行より後に同じ設定があると、次の起動でメニューの選択が上書きされます。その場合はメニューに「⚠ tmux.conf」と何行目かが出て、その行をコメントにすることもできます(実行前に確認し、変更前のファイルを、名前の末尾に .junban.bak を付けて残します)。 | |||
| — | g | Scratch shell in a popup. Close it; what you ran is still there next time. No Alt key by default; set @junban-key-scratch M-g to add one.ポップアップのシェル。閉じても中身は残り、次に開くと続きから使えます。Alt キーは既定では割り当てていません。@junban-key-scratch M-g で追加できます。 | |||
| Alt+/ | / | All keys, today's timeline and the wait report.キーの一覧、今日のタイムライン、待ち時間のレポート。 | |||
| — | T | Today's timeline. No Alt key by default (Alt+t toggles thinking in Claude Code); set @junban-key-timeline M-y to add one.今日のタイムライン。Alt キーは既定では割り当てていません(Claude Code が Alt+t を思考の切り替えに使っているため)。@junban-key-timeline M-y で追加できます。 | |||
| Alt+1…9 | — | Window by number.番号のウィンドウへ移動。 | |||
| Alt+[ Alt+] | — | Previous / next window.前/次のウィンドウ。 | |||
| Alt+w | — | Close the window. Asks first, since the agent in it stops.ウィンドウを閉じる。中のエージェントも終了するので、先に確認します。 | |||
| Alt+Tab | — | Back to the window you were just in.直前のウィンドウに戻る。 | |||
| Alt+z | — | Zoom the pane, or unzoom it.ペインを最大化/元に戻す。 |
On macOS, let Option act as Alt: in iTerm2, Profiles → Keys → Left Option key: Esc+; in Terminal.app, Settings → Profiles → Keyboard → Use Option as Meta key.
macOS では Option を Alt として使えるように設定します。iTerm2 は Profiles → Keys → Left Option key を Esc+ に、ターミナル.app は設定 → プロファイル → キーボード で、Option キーをメタキーとして使う項目をオンにします(macOS の版によって表記が少し違います)。
The Alt+/ and timeline popups scroll with the arrows, PgUp/PgDn, Space or the mouse wheel; any other key, or a click inside, closes them.
Alt+/ とタイムラインのポップアップは、矢印キー・PgUp/PgDn・Space・マウスホイールでスクロールし、ほかのキーを押すかポップアップの中をクリックすると閉じます。
The Alt+f list
Alt+f の一覧
Agents that need you come first, each with its badge, how long it has been in that state, its name and its recap (or what you last asked it). Type to filter on any of these; the preview shows the window live. Enter goes there, Esc closes. Without fzf you get tmux's own window chooser, with badges but sorted by name.
A finished agent's row also says what the work changed (3 files +41 −88 · 2 commits · PR #12), and its preview starts with the diff stat, so you can pick what to review first. Ctrl+o opens the PR.
返事待ちのウィンドウから順に、印・その状態になってからの時間・ウィンドウの名前・1行要約(なければ最後に頼んだ内容)が並びます。文字を打つと、これらの項目で絞り込めます。プレビューには、そのウィンドウの今の画面が出ます。Enter で移動、Esc で閉じます。fzf がない場合は tmux 標準の選択画面になります。印は付きますが、並びは名前順です。
作業を終えたエージェントの行には、その作業で変わったもの(3ファイル +41 −88 · 2コミット · PR #12)も出ます。プレビューの先頭には変更したファイルの一覧が出るので、どれから確認するかを決められます。Ctrl+o で PR を開きます。
Alt+n and worktrees
Alt+n と worktree
Alt+n opens a window in the current directory and starts your agent (@junban-agent-cmd, default claude). If another agent is already open in that git tree and Alt+n starts Claude Code, the new one starts in its own worktree (claude --worktree), so the two never edit the same files. @junban-new-worktree off always starts in the current directory.
Alt+n は今のディレクトリで新しいウィンドウを開き、エージェントを起動します(@junban-agent-cmd、既定は claude)。起動するのが Claude Code で、同じ git の作業ツリーにほかのエージェントのウィンドウがすでに開いている場合は(作業中でなくても)、新しい方を別の worktree(claude --worktree)で起動します。そのため、2つのエージェントが同じ作業ツリーのファイルを同時に編集せずに済みます。@junban-new-worktree off にすると、常に今のディレクトリで起動します。
To pass flags, put them in the command (@junban-agent-cmd, or Alt+, → Alt+n starts). Claude Code offers bypass permissions on Shift+Tab only when it was started with a flag for it, so an agent from Alt+n will not have it until you add one: set -g @junban-agent-cmd "claude --dangerously-skip-permissions" starts in bypass permissions mode, "claude --allow-dangerously-skip-permissions" starts normally and lets Shift+Tab reach it. Bypass mode skips every permission check, so use these only where you would run Claude Code that way by hand. Agents already open keep the flags they started with.
オプションを付けたいときは、@junban-agent-cmd(または Alt+, の「Alt+n で起動するもの」)に書きます。Claude Code で Shift+Tab から bypass permissions を選べるのは、起動時に専用のオプションを付けたときだけです。そのため、Alt+n で開いたエージェントでは、オプションを足すまで選べません。set -g @junban-agent-cmd "claude --dangerously-skip-permissions" なら最初から bypass permissions モードで起動し、"claude --allow-dangerously-skip-permissions" なら通常の状態で起動して Shift+Tab で bypass を選べます。bypass では権限の確認がすべて省かれます。これらのオプションは、普段から手で付けて Claude Code を起動している環境でだけ使ってください。すでに開いているエージェントは、起動したときのオプションのままです。
Status lines 2 and 3ステータスバーの2・3行目
junban adds two status lines under the window tabs. The second line says what needs you or, when nothing does, shows today's wait and any agents left untouched (z). The third line lists the keys.
junban はウィンドウのタブの下に2行を足します。2行目には対応が必要なものを、なければ今日の待ち時間を出します。3行目にはキーの一覧を出すので、キーを覚えていなくても操作できます。
Nothing needs you. Today's wait on the second line, the keys worth knowing on the third. Right after you press the prefix (Ctrl+b by default), the third line lists what can follow it instead.
平常時。2行目に今日の待ち時間(放置中のウィンドウがあればその件数も)が、3行目に覚えておくと便利なキーが出ます。prefix(既定は Ctrl+b)を押した後は、3行目が続けて押せるキーに変わります。
An agent is waiting. A red banner with the key, and one line on what the next agent wants.
エージェントが返事を待っているとき。赤い表示で押すキーを示し、次に移動するウィンドウが何を求めているかを1行で出します。
An agent finished. A green banner, with how the work turned out.
エージェントが作業を終えたとき。緑の表示と、作業の結果の1行が出ます。
The banner sits on the second line; with the default three rows, today's wait moves to its right end when there is room. On a narrow terminal, today's wait drops out first, then the recap is shortened, so the banner always fits.
この赤・緑の表示は2行目に出ます。3行表示(既定)で幅に余裕があれば、今日の待ち時間はその右端に移ります。ターミナルの幅が狭いときは、今日の待ち時間を外し、次に1行要約の末尾を切り詰めるので、押すキーの表示は必ず残ります。
@junban-guide-lines 2 drops the keys row once you know the keys; they then show only after you press the prefix. @junban-tint sets how strongly the ✓ banner's green tints its row, in percent (default 20; 0 turns it off). @junban-tint-waiting does the same for ✋ (default 35, or 0 when @junban-tint is 0).
@junban-guide-lines 2 にすると、キーの行がなくなります。prefix を押した後は、残った行に続けて押せるキーが出ます。@junban-tint で、緑の表示(✓)が出ている行全体を同じ色で薄く塗るときの濃さを % で変えられます(既定 20、0 で塗らない)。赤の表示(✋)の濃さは @junban-tint-waiting で変えられます(既定 35。ただし @junban-tint が 0 なら、指定しない限り 0)。
One-line recaps1行要約
When an agent asks you something, wants permission or finishes, junban writes one line about it: the question, what it wants permission for, or how the work turned out ("tests pass, PR #12 opened"). It shows in the banner, in the Alt+f list and in notifications for finished work, so you know where each one stands before you switch.
エージェントが質問したとき、許可を求めたとき、作業を終えたときに、その内容を1行にまとめます。1行になるのは、質問の中身、許可を求めている操作、作業の結果(「テスト成功、PR #12 を作成」など)です。ステータスバー、Alt+f の一覧、完了の通知(設定している場合)に出るので、ウィンドウを切り替える前に、それぞれが何を求めているか、作業がどう終わったかが分かります。
With a namer model set (below), the model writes the line for finished work; otherwise it is the first meaningful line of the agent's last reply. @junban-recap off turns it off.
作業を終えたときの1行は、命名用のモデルを設定していれば(次の項目)モデルが書き、なければエージェントの最後の返答から、最初の意味のある1文を使います。@junban-recap off で止められます。
Window namesウィンドウの名前
Windows are named after what you asked. Short replies ("ok", "yes", "進めて", "ครับ"), slash commands, ! shell commands and pasted blocks never rename anything. A window you rename yourself (prefix ,) is left alone for good.
ウィンドウには、あなたが頼んだ内容から名前が付きます。「OK」「はい」「進めて」のような短い返事、スラッシュコマンド、! で始まるシェルコマンド、貼り付けた長文では変わりません。自分で名前を付けたウィンドウ(prefix ,)は、それ以降ずっとそのままです。
モデルに名前を付けさせる場合は、下のように @junban-rename llm と、接続先(@junban-namer-url)・モデル名(@junban-namer-model)を設定します。
# default: the first meaningful line of your latest prompt set -g @junban-rename prompt # or let a model summarize your last few prompts set -g @junban-rename llm set -g @junban-namer-url http://localhost:11434 # Ollama, or an OpenAI-compatible …/v1 set -g @junban-namer-model qwen3:8b # set -g @junban-namer-key OPENROUTER_API_KEY # env var holding the key for a …/v1 server (unset: api.openai.com gets $OPENAI_API_KEY, other servers get no key)
A small local model is fast enough for this. If the model is unreachable, the prompt is used.
名前付けには、Ollama などで自分の PC に置いた小さなモデルで十分です。モデルにつながらないときは、頼んだ内容をそのまま使います。
The wait report待ち時間のレポート
A wait runs from the moment an agent asks you something (✋) or finishes (✓) until you answer or look. If it finishes while you are watching, that is no wait at all. One wait counts for at most @junban-meter-cap minutes (60), so a night away doesn't swamp the numbers.
待ち時間は、エージェントが質問や実行の許可を求めた時点(✋)、または作業を終えた時点(✓)から、あなたが返事をするか見に行くまでです。見ている最中に終わった分は数えません。1回あたり最大 @junban-meter-cap 分(既定 60分)で打ち切るので、一晩放置しても、その1回で合計が大きく膨らむことはありません。
- The status line shows today's total and your median reply. Next to the median, an arrow compares today with the 7 days before: a green ▼ when you're replying quicker, an orange ▲ when slower, with the word spelled out:
median reply 3m10s ▼32% quicker than the last 7 days. Nothing shows for a change under 15 seconds or 10%, or until there are 3 waits today and 5 in the week before. A change of 2× or more shows as a ratio:▲3.3× slower than the last 7 days. - ステータスバーに、今日の合計と返答の中央値が出ます。中央値の横には、前の7日間より速ければ緑の ▼ と「速い」、遅ければオレンジの ▲ と「遅い」が出ます(
返答の中央値 3分10秒 ▼32% 速い(前7日比))。差が15秒未満か10%未満のときは、矢印を出しません。今日の待ちが3回未満のときと、前の7日間の待ちが5回未満のときも同じです。2倍以上は「▲3.3倍 遅い」のように倍数で出します。 - Alt+/ shows the full report: a bar per day, this week against last (the same ▼ / ▲, or "≈ same" when the change is too small to matter), your best day, today's slowest windows, and a streak of days with a median reply within
@junban-goalminutes (5). The mascot comments on your week. - Alt+/ では、日ごとの棒グラフ、今週と先週の比較(ステータスバーと同じ ▼ / ▲ で示し、差が小さいときは「≈ ほぼ同じ」)、自己ベストの日、今日のウィンドウ別の待ち時間(長い順に最大8件)、返答の中央値が
@junban-goal分(既定 5分)以内だった日の連続記録が見られます。マスコットが、返事の速さを先週と比べてひとこと言います。 ~/.tmux/plugins/junban/scripts/stats.sh 30goes back 30 days.~/.tmux/plugins/junban/scripts/stats.sh 30で直近30日分を表示します。
How long your agents waited on you — last 7 days
day waited times median ✋ ✓
10/12 0s 0 0s 0 0
10/13 0s 0 0s 0 0
10/14 0s 0 0s 0 0
10/15 0s 0 0s 0 0
10/16 10h12m 139 55s 0 139 ████████████████
10/17 1h05m 18 3m02s 2 16 █▋
10/18 today 2h53m 22 4m23s 0 22 ████▌
This week vs last: median reply 1m40s → 1m05s ▼35% quicker · waited 13h40m → 14h10m ≈ same
Personal best: 10/16, median reply 55s
3 days in a row with a median reply within 5 min
…
エージェントがあなたを待った時間 — 直近7日
日付 待ち時間 回数 中央値 ✋ ✓
10/12 0秒 0 0秒 0 0
10/13 0秒 0 0秒 0 0
10/14 0秒 0 0秒 0 0
10/15 0秒 0 0秒 0 0
10/16 10時間12分 139 55秒 0 139 ████████████████
10/17 1時間05分 18 3分02秒 2 16 █▋
10/18 今日 2時間53分 22 4分23秒 0 22 ████▌
今週と先週: 返答の中央値 1分40秒 → 1分05秒 ▼35% 速い · 待ち時間 13時間40分 → 14時間10分 ≈ ほぼ同じ
自己ベスト: 10/16(返答の中央値 55秒)
3日連続で返答の中央値が5分以内
…
The timelineタイムライン
Press prefix T (also shown in Alt+/, below the keys) to see when your agents worked today: one row per window, █ working, ▓ waiting on you, ▒ done and not looked at. Below it: when your agents first and last ran, how long agents worked, how long they waited on you, and the most that ran at once. ~/.tmux/plugins/junban/scripts/timeline.sh 1 shows yesterday.
prefix T(Alt+/ でもキー一覧の下に出ます)で、今日エージェントがいつ動いたかが見られます。ウィンドウごとに1行で、█ 作業中、▓ あなたの返事待ち、▒ 完了・未確認です。下には、稼働していた時間帯、エージェントの作業時間、あなたを待った時間、最大いくつのウィンドウが同時に動いたかが出ます。~/.tmux/plugins/junban/scripts/timeline.sh 1 で前日を表示します。
The timeline is built from local logs and never leaves your machine.
タイムラインのデータは、あなたの PC から外に出ません。
Notifications通知
When an agent starts waiting or finishes, junban can run a command with a short message on stdin: the window name, plus the recap for finished work. junban also runs it once each time a working agent's ● turns orange: by default, after 15 minutes with no finished tool call (@junban-quiet-minutes). The message looks like ● api-tests: no tool activity for 15 min, with the window's name and how many minutes the agent has been silent.
エージェントが返事待ちになったときや作業を終えたときに、junban は指定したコマンドを実行し、標準入力に短いメッセージ(ウィンドウの名前と、完了したときは1行要約)を渡します。作業中のエージェントでツールの実行が1回も終わらないまま一定の時間(既定は15分。@junban-quiet-minutes で変えられます)がたつと、タブの ● がオレンジになり、「● 15分」のように時間が出ます。このときにも、junban は同じコマンドを実行します。実行するのは、● がオレンジになるたびに1回です。メッセージは ● name: no tool activity for 15 min の形です。name はウィンドウの名前、15 は ● がオレンジになったときに何分たっていたかです。このメッセージは、言語の設定にかかわらず英語で届きます。
# desktop (Linux) set -g @junban-notify-cmd 'xargs -0 notify-send junban' # phone, via ntfy set -g @junban-notify-cmd 'curl -s -d @- ntfy.sh/your-topic'
With many agents, finished work arrives all the time. @junban-done-batch 30 holds ✓ until the next :00 or :30 and sends them as one notification; until then the status line shows how many are held and when they will appear. ✋ still comes at once, and Alt+a still takes you to a held ✓ if you want it.
エージェントが多いと、完了の知らせが頻繁に届きます。@junban-done-batch 30 にすると、完了(✓)は毎時0分と30分にまとめて1通で届きます。それまではステータスバーに、件数とまとめて表示する時刻(「✓ 完了3件は 15:30 にまとめて表示」)が出ます。返事待ち(✋)はすぐに届きます。まとめて通知される前の ✓ にも、Alt+a で移動できます。
A public ntfy.sh topic can be read by anyone who knows its name. Pick a long random one, or run your own server.
ntfy.sh の公開トピックは、名前を知っていれば誰でも読めます。長くてランダムな名前にするか、自前のサーバーを使ってください。
Codex, Gemini and other agentsCodex・Gemini・ほかのエージェント
| Agent | エージェント | Setup | 設定 | You get | できること |
|---|---|---|---|---|---|
| Claude Code | the plugin (the install command adds it)プラグイン(インストールのコマンドで入る) | ✋ ✓ ●, recaps, change summaries, window names; badges fix themselves after Esc✋ ✓ ●、1行要約、変更内容、ウィンドウの名前。Esc 後の印の自動修復 | |||
| Codex CLI | setup.sh codex | ✋ ✓ ●, recaps (including the command it wants to run), change summaries, window names; Esc clears the badge✋ ✓ ●、1行要約(実行したいコマンドも含む)、変更内容、ウィンドウの名前。Esc で印が消える | |||
| Gemini CLI | setup.sh gemini | ✋ ✓ ●, recaps (including the command it wants to run), change summaries, window names✋ ✓ ●、1行要約(実行したいコマンドも含む)、変更内容、ウィンドウの名前 |
~/.tmux/plugins/junban/scripts/setup.sh codex # writes ~/.codex/hooks.json ~/.tmux/plugins/junban/scripts/setup.sh gemini # writes ~/.gemini/settings.json
Both keep your own hooks, replace only junban's entries (safe to run again) and keep the previous file beside it with .bak added to its name (replaced on each run). Add --print to see what would be written. Codex asks you to trust new hooks once: open /hooks in Codex. To make Alt+n start Codex, set -g @junban-agent-cmd codex.
どちらも既存のフックは残し、junban の分だけを入れ替えます(何度実行しても大丈夫です)。書き換える前のファイルは、名前の末尾に .bak を付けて残します(実行するたびに上書きされます)。--print を付けると、書き込む内容を表示するだけで終わります。Codex は新しいフックを一度だけ承認する必要があるので、Codex で /hooks を開いてください。Alt+n で Codex を起動したい場合は set -g @junban-agent-cmd codex にします。
Any other agent that can run a command when it needs you or finishes can drive junban, as long as the command runs inside the agent's tmux pane:
ほかのエージェントでも、返事待ちや完了のときにコマンドを実行できるものなら、下の state.sh を呼ぶように設定すれば junban で状態を表示できます。そのコマンドは、エージェントと同じ tmux のペインの中で実行される必要があります。
~/.tmux/plugins/junban/scripts/state.sh running # or waiting | done | idle | clear
VS Code terminalsVS Code のターミナル
This applies when tmux runs on Linux and VS Code connects to it remotely (Remote-SSH, Dev Containers, WSL), with one VS Code window per project and each terminal attached to its own tmux session. Alt+a and the Alt+f list then raise the VS Code window that already shows the target, instead of swapping this terminal to another project. If no terminal shows the target (you closed the terminal in that project's window), they open that project's folder in VS Code. Everywhere else, and with @junban-vscode-raise off, the terminal switches in place.
この節は、tmux が Linux で動いていて、VS Code がリモート接続(Remote-SSH・Dev Containers・WSL など)でそこにつないでいる場合の話です。プロジェクトごとに VS Code のウィンドウを分け、それぞれのターミナルを別の tmux セッションにつないでいる場合、Alt+a や Alt+f の一覧で移動すると、行き先をすでに表示している VS Code のウィンドウが前面に出ます。今のターミナルの中身を別プロジェクトに入れ替えることはしません。行き先を表示しているターミナルがないとき(そのウィンドウでターミナルを閉じているときや、ウィンドウ自体を閉じているとき)は、そのプロジェクトのフォルダを VS Code で開きます。それ以外のターミナルと、@junban-vscode-raise off にしたときは、その場で切り替えます。
After a restart再起動したあと
junban keeps a list of which window runs which Claude Code conversation. When tmux starts again (after a crash, a reboot or tmux kill-server), it reopens the windows you would reopen by hand, each in its old session, folder and name, with claude --resume: agents that were waiting on you, working, or finished and not yet looked at, and any active in the last day. Windows marked z are not reopened automatically. At most six reopen on their own, two seconds apart, the ones waiting on you first, so a dozen agents never start at the same moment. The conversation picks up where it stopped; a command that was running does not. Only Claude Code windows are restored.
junban は、どのウィンドウでどの Claude Code の会話が動いているかを記録しています。tmux を起動し直したとき(tmux が落ちたあと、マシンを再起動したあと、tmux kill-server のあと)、Claude Code のウィンドウを、元の tmux セッション・フォルダ・ウィンドウ名のまま claude --resume で開き直します。自動で開くのは、再起動の前に返事待ち・作業中だったもの、完了してまだ見ていなかったもの、直近1日に動いていたものです。z が付いていたウィンドウは自動では開きません。エージェントを一度に何本も起動してメモリを使い切らないよう、返事待ちのものから順に最大6件までを、2秒ずつ間を空けて開きます。会話は止まったところから続けられますが、実行中だったコマンドは再実行されません。復元できるのは Claude Code のウィンドウだけです。
The status line says how many came back and how many are left in the menu. The rest are under Alt+, → Restore windows, one by one or all at once. @junban-restore off stops the automatic reopening; the menu still works. Windows whose folder is gone are skipped.
開いた件数と、開かずに残した件数がステータスバーに出ます。開かなかったウィンドウは Alt+, →「ウィンドウを復元」から、1つずつでも、まとめてでも開けます。@junban-restore off にすると自動では開かなくなります(Alt+, からは開けます)。フォルダがなくなったウィンドウは対象外です。
All options設定一覧
All optional. Put them in your tmux config (~/.tmux.conf or ~/.config/tmux/tmux.conf) before the line that loads junban (run-shell …/junban.tmux, or TPM's run line), then reload tmux. A choice saved from Alt+, overrides the same option set here.
すべて任意です。tmux の設定ファイル(~/.tmux.conf など)で、junban を読み込む行(run-shell …/junban.tmux、または TPM の run の行)より前に書き、tmux を読み込み直します。Alt+, で保存した値は、ここに書いた同じ設定より優先されます。
# Look set -g @junban-theme on # off = keep your own colors and tab formats; junban splices the badge and the counter into them set -g @junban-position top # top | bottom set -g @junban-guide on # status lines 2 and 3 set -g @junban-guide-lines 3 # 2 = no keys row; the keys show after the prefix set -g @junban-tint 20 # % of the ✓ banner color washed over its row (0 = off) set -g @junban-tint-waiting 35 # the same for ✋ (0 when @junban-tint is 0) set -g @junban-mascot on # off = hide the face set -g @junban-name-width 12 # characters of a window name on the other tabs (the current tab shows up to 32) # set -g @junban-lang en # en | ja | th (default: from $LANG) set -g @junban-update stable # stable = newest release | main = every change | off (checked daily) # Keys ("" to unbind) set -g @junban-key-jump M-a set -g @junban-key-list M-f set -g @junban-key-new M-n set -g @junban-key-scratch "" # e.g. M-g (prefix g works while @junban-prefix-keys is on) set -g @junban-key-settings M-, set -g @junban-key-help M-/ set -g @junban-key-timeline "" # e.g. M-y set -g @junban-nav-keys on # Alt+1…9, Alt+[ ], Alt+Tab, Alt+z, Alt+w; also numbers tabs from 1 with no gaps set -g @junban-prefix-keys on # prefix a f C g / T # Agents set -g @junban-agent-cmd claude # what Alt+n starts set -g @junban-new-worktree auto # off = never start in a separate worktree set -g @junban-vscode-raise on # off = Alt+a and Alt+f always switch this terminal set -g @junban-restore on # off = no automatic reopening after a restart; Alt+, → Restore windows still works set -g @junban-recap on # one line on what each agent needs or what it finished set -g @junban-done-batch off # N = hold ✓ and show them together every N minutes # Waits and untouched agents set -g @junban-scan-interval 30 # seconds between checks for untouched agents (z) set -g @junban-stale-hours 24 # z after this many hours untouched (0 = off) set -g @junban-quiet-minutes 15 # orange ● after this many minutes with no finished tool call (0 = off) set -g @junban-meter on # today's wait and median reply on the status line set -g @junban-meter-cap 60 # minutes one wait can count for set -g @junban-goal 5 # streak: days with a median reply within this many minutes # Window names: see "Window names" set -g @junban-rename prompt # off | prompt | llm # Notifications: see "Notifications" set -g @junban-notify-cmd '…'
Colors: @junban-color-waiting, -done, -running, -slower, -bg, -bg2, -fg, -accent, -muted, -dim, -key, -current-bg. With @junban-theme off, the badge is added to your own formats; to place it yourself, put #{E:@junban-badge} in a format.
色: @junban-color-waiting・-done・-running・-slower・-bg・-bg2・-fg・-accent・-muted・-dim・-key・-current-bg。@junban-theme off で自分のテーマを使う場合も、印は自動で付きます。好きな位置に出したいときは、#{E:@junban-badge} をフォーマットに入れます。
Your dataデータの扱い
Live state lives in tmux window options. junban's logs are kept in ~/.local/state/junban/ (or $XDG_STATE_HOME/junban), readable only by you (files 0600, folder 0700):
今の状態は tmux のウィンドウオプションに保存しています。記録は ~/.local/state/junban/(または $XDG_STATE_HOME/junban)に置き、自分しか読めない権限(ファイル 0600、フォルダ 0700)にしています。
waits.tsv: start, end, kind and window name of each wait. Feeds the meter and the report.waits.tsv: 待ちごとの開始・終了・種類・ウィンドウの名前。ステータスバーの待ち時間とレポートに使います。states.tsv: each change of state with its window name. Feeds the timeline. No prompts.states.tsv: 状態の変化とウィンドウの名前。タイムラインに使います。依頼の内容は入りません。done.tsv: when each turn finished, the window name, your prompt and the one-line recap. Nothing in junban reads it yet.done.tsv: 作業を終えた時刻・ウィンドウの名前・依頼の内容・1行要約。今は記録するだけで、junban のほかの機能はこのファイルを読みません。update.log: when junban updated itself, from which version to which.update.log: 自動更新の記録(いつ、どの版からどの版へ)。
waits.tsv, states.tsv and done.tsv are trimmed to their last 90 days once they pass 4 MB.
waits.tsv・states.tsv・done.tsv は、4 MB を超えると直近90日分だけを残します。
Nothing leaves your machine unless you set a namer URL or a notify command, and then it goes only where you pointed it. The daily update only fetches from GitHub; it sends nothing about you.
junban が外と通信するのは、毎日の自動更新で GitHub から新しい版を取得するときと、命名用の URL か通知コマンドを設定したときだけです。自動更新では利用者についての情報を送らず、命名と通知の送り先は自分で指定した場所だけです。
Troubleshootingうまく動かないとき
~/.tmux/plugins/junban/scripts/doctor.sh
Or /junban:doctor in Claude Code. It checks tmux, the plugin and each agent's hooks, prints ok / warn / FAIL with what to do, and leaves out window names, prompts and secrets so you can paste it into a bug report.
上のコマンドで設定を診断できます(Claude Code では /junban:doctor でも同じです)。tmux・プラグイン・各エージェントのフックを確認し、ok / warn / FAIL と直し方を表示します。診断結果にはウィンドウの名前・依頼の内容・API キーなどの秘密情報が含まれないので、そのままバグ報告に貼れます。
- Alt keys do nothing. Your terminal isn't sending Alt. Use the prefix keys, or see the macOS note under Keys.
- Alt キーが使えない。ターミナルが Alt を送っていません。prefix のキーを使うか、「キー」の節にある macOS の設定を見てください。
- No badges. Agents started before you installed junban don't have its hooks yet. Run
/reload-pluginsin Claude Code, or restart the agent. - 印が出ない。導入前から動いていたエージェントには、まだフックが入っていません。Claude Code で
/reload-pluginsを実行するか、エージェントを起動し直してください。 - Codex shows nothing. Trust the hooks once with
/hooksin Codex. - Codex で何も出ない。Codex で
/hooksを開き、フックを承認してください。
Questions: Discussions. Security issues: report privately, see SECURITY.md.
質問や使い方の相談は Discussions へ。セキュリティの問題は公開せずに報告してください(SECURITY.md)。
Updatesアップデート
junban updates itself. Once a day it moves to the newest release (a version that passed CI on Linux and macOS), reloads, and updates the Claude Code plugin; new Claude Code sessions use the new hooks. A copy with local changes, or one you pinned to a commit, is left alone. After an update, the status line says "junban updated to X" once.
junban は自動で更新されます。1日に1回、最新のリリース(Linux と macOS のテストを通った版)があれば更新して読み込み直し、Claude Code のプラグインも更新します。Claude Code のフックは、新しく起動したセッションから新しい版になります。手元で変更を加えている場合や、版を固定している場合は更新しません。更新した後は、ステータスバーに「junban を X に更新しました」と1回だけ出ます。
- Alt+, → Update now updates at once and says what it did. The installed version is shown next to it, and next to the title in Alt+/.
- Alt+, →「今すぐアップデート」で、その場で更新して結果を表示します。今の版はこの項目の横と、Alt+/ のタイトルの横に出ます。
- Alt+, → Updates: releases (default), every change on the branch you installed from, or off (
@junban-update). - Alt+, →「アップデート」で、「自動(リリース版)」(既定)・「自動(すべての変更)」・「オフ」を選べます(
@junban-update)。 - Installs older than 0.7.0 need one last manual update:
git -C ~/.tmux/plugins/junban pull && claude plugin update junban@junban - 0.7.0 より前の版を使っている場合は、次のコマンドで1回だけ手動で更新してください。
git -C ~/.tmux/plugins/junban pull && claude plugin update junban@junban
Uninstallアンインストール
- Remove the junban line from your tmux config,
~/.tmux.confor~/.config/tmux/tmux.conf(run-shell …/junban.tmux, or the@pluginline). - tmux の設定ファイル(
~/.tmux.confまたは~/.config/tmux/tmux.conf)から junban の行(run-shell …/junban.tmux、または@pluginの行)を消します。 - Delete
~/.tmux/plugins/junbanand, if you like,~/.local/state/junbanand~/.config/junban(your Alt+, choices). ~/.tmux/plugins/junbanを削除します。必要なら~/.local/state/junbanと~/.config/junban(Alt+, で選んだ設定)も消します。- In a terminal:
claude plugin uninstall junban@junban. For Codex or Gemini, delete the entries that call junban'shook.shfrom~/.codex/hooks.jsonor~/.gemini/settings.json. - ターミナルで
claude plugin uninstall junban@junbanを実行します。Codex は~/.codex/hooks.json、Gemini は~/.gemini/settings.jsonから、junban のhook.shを呼んでいる項目を消します。 - Restart tmux (
tmux kill-server) to clear the keys and status lines. This ends every tmux session, including any agents still running. - 作業を終えてから
tmux kill-serverで tmux を終了し、起動し直します。tmux のセッションはすべて終了し、動いているエージェントも止まります。起動し直すと、キーとステータスバーが元に戻ります。