blog

Ten Claude Code sessions, one you open: what a session status lets you do

Every Clawdline session status names one action, so a list of sessions tells you which one to answer, what you still owe, and which tab is safe to close without opening any of them.

Ten Claude Code sessions are open and nine are silent. One is stopped on a question you have not read. One finished twenty minutes ago. One is waiting on another session and needs nothing.

Every status names one action, so the list answers that from outside: which one to answer, what you still owe, which tab is safe to close.

Open one session out of ten

Every state had to pass one test: one state, one distinct action. Busy fails it, and so does “quiet for a while”, which measures your scanner, not the work.

What survives reads as instructions, not descriptions.

The row says What it means What you do
🙋 waiting on you A turn is stopped on a person Answer it now. The only state that pushes, and the only orange in the list
📥 owes a decision Something is owed while other work carries on Pay it or clear it. It never pushes; it ages, and the age is the risk
⏳ waiting on another Session A peer, a file release or its own live child has to move first Usually nothing. If it stays, somebody has to go and unwedge it
🔜 holding An event, a clock or something it already started will move it Nothing. Unlike the one above, this cannot wedge
working It is executing right now Nothing. The live line says what
📭 ready It says it can accept work Hand it something. This is not a claim to have finished
unknown There is no positive evidence either way Nothing is being asked of you
✓ delivered A result arrived with evidence behind it Review it. Landing may still remain
✓✓ landed That task scope reached its target Check the closing badge separately before you close anything

The state vocabulary is the reference version, and reading the Session list covers the same marks in the browser. A row carries four independent answers, and why four is its own piece.

Stop checking the session that is waiting on another session

A notification when a pane goes quiet is enough for two sessions, and stops being enough once they depend on each other. One waiting for your answer and one waiting for another session are equally silent, and want opposite things from you.

The hourglass row hands time back. It is blocked on a peer, a file release or its own live child, so you stop opening it to see whether it moved.

approve the production deployclaude~/code/beaconttys009🙋waiting on you · deploy to production?
review the import rulesclaude~/code/lanternttys007⏳waiting on another Session · the migration result
verify the release routescodex~/code/orchardttys016delivered · awaiting review
inspect an attached terminalcodex~/code/harbourttys021status unknown · screen temporarily unreadable

Four rows from a Session list. Every project, title and tty here is invented for the page.

The quietest row is the one with nothing on it. Orange is spent once, on the row a person has to answer. The hourglass row is waiting too, but on another Session, so it asks you for nothing and is drawn as though it were asking for nothing. The last row has no icon at all, because there is no evidence to have an icon about.

A row waiting on the same session since lunch is a different matter: that one is wedged, and only a person unwedges it.

Review a claim instead of working out what happened

A session reporting its own work finished is not proof. It is worth a lot anyway: it is a claim with a name on it. Without one you reconstruct what happened from the output. With one you check a single thing.

That is why the two completion marks are evidence-only. A session may never mark its own work complete. It can declare itself ready or holding, and the row prints that as the session’s own word. Claiming delivered or landed is refused by name, so the claim can never stand in for the check. Delivered, reviewed and landed are three separate facts to begin with.

Tell a closeable tab from a calm-looking one

Ready means able to accept work. Safe to close means able to end without losing anything. Reading one off the other is how somebody closes a tab that still owed something.

So closing carries its own badge. Do not close when the app can name an obligation. Ask that session when only it can account for its local work. The button may proceed when both hold. Take a fresh reading when the evidence is stale.

The fourth outranks the first. Stale evidence makes the list’s completeness unknown, and an incomplete list gets read as a checklist.

Hand work out and still see what you are carrying

Work you dispatch lands back on your own row. A Root with a live Child Session under it carries an obligation whatever its own terminal is doing.

tidy the photo import rulescodex~/code/meadowttys014Root · 1📭ready for new work · self-declared🔒 1 obligation remains
run the import migration testsclaude~/code/meadowttys022Child Sessionworking · 14 of 61 tests

One Root and the Child Session it dispatched. Both names, both paths and both ttys are invented for the page.

The Root's own terminal is quiet, and the Root is still the row you cannot close. It says it can accept new work, which is true. The lock badge is a separate answer to a separate question, and what puts it there is the indented row underneath — somebody else's live work, filed under this session.

Closing that Root cancels every live task it dispatched, and four half-finished tasks ended that way here in fourteen seconds. So what a close costs is computed at the press, and the app refuses until you accept the list.

Naming who picks up each orphan stays a person’s job. A child cannot hand work on again, which is a limit worth its own piece. Stopping one on purpose is not the same event as losing it.

What the list still will not tell you

Unknown is common here, and it is supposed to be. It is not a failure and not an offline marker. The evidence was incomplete, and a grey italic row asks nothing of you.

Holding is refused unless the session names its next step and a mover that is not a person. Genuine holds are rare; if the state became common, the specification would be wrong.

The audit that would go and ask an unknown row what it is doing does not exist yet. Take the test to your own list: name the single action for each of your states.

Common questions

How do I tell which Claude Code session is waiting for me?
By having something that separates waiting for a person from waiting for anything else, because the two look identical in a terminal — both are a pane that has stopped printing. Clawdline gives the first its own state, its own icon, and the only orange in the list, and it is the one state that is allowed to push a notification. Everything else is deliberately quiet: a session waiting on another session's result, a session executing, a session that says it can take new work, and a session the app cannot currently read all sit there without asking you for anything. That is the point of the split. A list where five rows are shouting is a list you stop reading.
Does an idle Claude Code session mean it has finished?
No, and treating those two as the same fact is the most common way to lose work. A quiet pane can mean the session is thinking, that it has been waiting for your answer since lunch, that it delivered a result nobody has reviewed, or that the reader cannot see enough to tell. Clawdline refuses to grade silence into a verdict for exactly that reason: a state has to say what you should do, and quiet says nothing. Where there is no positive evidence, the row says unknown and asks nothing of you, rather than inventing a demand out of an absence.
Is it safe to close a Claude Code session that says it is ready?
Not necessarily, and those are two different questions with two different answers. Ready means the session can accept new work. Safe to close means ending this exact process would lose nothing — no live child task, no pending landing, no waiter parked on files it owns, no decision it still owes you. A session can be sitting quietly at a prompt, genuinely able to take a new instruction, and still be carrying every one of those. Clawdline keeps the two as separate badges on the row and gates the close button on the second one, so the answer to may I close this is never inferred from the terminal looking calm.