Attend

LOCAL COMMAND CENTER FOR AI CODING

Many sessions.
One place to
understand the work.

A local command center for parallel AI coding work. Find sessions across projects and CLIs, see what needs your attention, follow the branches of a discussion, and understand how your work is moving.

Open source · Local state · Your existing CLIs

ATTEND / ACTUAL CONSOLE ↗Attend console showing a tag sidebar, multi-project session cards and a conversation with queued work3440 × 1440 native workspace. Multiple session columns, rich analysis cards, and the conversation in view.

ONE LOCAL CONSOLE. SIX CODING CLIs.

Claude CodeCodex CLICursor CLIAntigravity CLIGitHub Copilot CLIOpenCode

01 / THE REAL WORKSPACE

Your sessions, with their full working context.

This demo runs Attend’s own interface and styles with 60 synthetic sessions. Its middle panel uses the native multi-column grid; expand the workspace to 3440px, drag the divider, or choose a column count in Settings. Explore the session list, tags and Focus views; inspect analysis, comments, fork relationships, queues, and Work patterns. The same controls live in the local app.

Actual Attend UI · Synthetic data · No CLI execution or model callsOpen full workspace ↗
WORKSPACE WIDTHNative multi-column panel · drag its divider or change columns in Settings

Try a tag, open a task, edit its label, or choose a view above. Edits are temporary. This static workspace uses fixture metadata search; the installed app indexes real transcripts. Sending and CLI execution are disabled.

READ THE SESSION, BEFORE OPENING THE HISTORY

A session card carries more than a title.

Choose what deserves attention before rereading the conversation. Human organization, live execution signals, and model-assisted handoff analysis sit together—but mean different things.

01

Identity & intent

Custom title or evolving brief, project, provider, first prompt, and latest prompt. See what started the conversation and where it has moved.

02

Attention & execution

Generating, a new reply, seen but still pending, or handled. Turn duration, last output and quiet time distinguish active work from a turn that needs a closer look.

03

Priority & handoff

A priority with its reason; a preset or custom-colored label naming what is needed now. Your manual label wins over delayed analysis for that turn.

04

Re-entry cost

ETA estimates how long you need to understand and respond—not how long the model will take to finish. Useful when there is only a small gap between other work.

05

Usage & configuration

Cumulative token usage and available input/output/cache detail, prompt count, provider, model, effort, and speed. Unknown provider data stays unknown.

06

Context & next actions

Tags, notes, todos, Pins, comment threads, queued messages, schedules and fork relationships are accessible around the same session.

02 / UNDERSTAND THE HANDOFF

When the agent stops, what does it need from you?

A finished turn might be ready to continue, waiting for a choice, missing input, blocked elsewhere, or ready for review. Attend separates that handoff state from importance, unread status, and runtime activity.

continue_ready

Continue ready

A concrete next action can proceed.

needs_decision

Needs decision

Choose a direction or tradeoff.

needs_input

Needs input

Provide a specific missing detail.

blocked

Blocked

An external dependency must change.

needs_review

Needs review

Check the result against your criteria.

followup_suggested

Follow-up suggested

There is a useful optional next step.

done

Done

The current task has a completed handoff.

Your own label can be more specific.

“Waiting for device test”, “Choosing the migration path”, “Needs a second review”. Use your own text and color when the standard state is not enough. Tags keep the long-term grouping; labels describe the current handoff.

Try the real label editor ↗
nextStep / Tab completion

A draft of the most likely next message

Predict the next move using the latest turn and your notes, todos, and shortcuts. Accept, edit, or ignore it.

probe / scrutiny

A question worth asking before continuing

Question a specific claim, assumption, command, or evidence gap in the latest answer. It is a separate lane, not a generic “are you sure?” prompt.

Local review signals

Notice when rereading is not advancing the work

Sustained reviews or revisits without another message can surface a descriptive observation and a smaller suggested next step. Checking a generating turn is treated differently. This is not a psychological diagnosis.

Manual control

Keep the final judgment yours

Set priority, re-entry time and the current label yourself. Hand-written state takes precedence over delayed analysis for that turn; priority and turn-scoped handoff state have different lifetimes.

Suggestions fill the composer; they never send themselves. Custom labels describe the current turn and reset when the next turn begins. Historical sessions may use local heuristics instead of a paired analyzer.

03 / FOLLOW THE STRUCTURE

One task can develop into many conversations.

Sessions are not just a flat history. Keep the main line running, investigate a passage in a comment, branch to test another direction, and bring selected context back deliberately.

MAIN SESSIONShip a reliable releaseTurns · tools · handoff analysis · tags
FORK / CHILD SESSIONTry another implementationOwn history · parent link · separate run
ANCHORED COMMENTVerify this assumptionSide conversation → promote to a task
PIN / EXPLICIT REFERENCEKeep the conclusion in reachJump to source → @ into the next turn

Chat groups keep related sessions together. Grouping does not merge their model context.

Session → fork

Keep the parent; explore another direction

Fork from a draft, queued message, or past point in the discussion. Keep the provider or seed a new session in another. The fork tree preserves parent/child relationships.

Message or passage → comment

Ask at the point that raised the question

A comment has its own conversation and attention state. It can investigate or act in the shared workspace without automatically adding its discussion to the main transcript.

Comment → task

Let a side discussion become real work

Promote a finished side discussion into an ordinary session, retaining its relationship and relevant context instead of copying everything into a new blank chat.

Pin → next turn

Carry a chosen conclusion back

Pin a message or passage and reference it with @. A queued message keeps a snapshot of that context; a sidebar discussion only joins the main thread when you explicitly include it.

Explore the real fork tree ↗

Comments share the working directory. Separate conversation context does not imply file isolation.

04 / SEE THE WORK PATTERN

Not just how much you used. How the work moved.

Open Work patterns from the throughput counters. Inspect session breadth, continuity, collaboration flow and resource pressure over selectable time ranges—from the last hour to 15 days.

Actual Attend Work patterns: collaboration flow, hourly breadth, resource pressure and mode comparison
Actual Work patterns view in the Light theme. All activity and semantic labels in this sample are synthetic.
01

Throughput

Sessions touched, pushes per elapsed hour, completed turns per elapsed hour, and tracked model busy time.

02

Live pressure

Generating sessions, queued work, overlap during busy time, peak concurrency, median turn duration and queue wait.

03

Collaboration flow

Semantic coverage, straight-through and rework rates, completed handoffs, plus work-intent and steering distributions.

04

Hourly breadth

An hourly timeline of Narrow (1–2), Mixed (3–5), and Wide (6+) sessions per prompted hour.

05

Breadth comparison

Prompted hours, sessions and completed turns per hour, median turn, switch rate, and resolved/advanced outcomes within 72 hours.

06

Coverage & limits

Recorded-history start times, sessions with and without state analysis, sample counts, and the evidence behind a comparison.

WORK MIX

Ask · Learn · Inspect code · Research · Design · Implement · Debug · Verify · Operate · Decide

STEERING

Initiate · Continue · Accept · Clarify · Challenge · Correct · Redirect · Partial / full rejection · Repeat instruction

Session breadth ≠ generation overlap. Breadth counts distinct sessions prompted in an hour. Overlap measures time when recorded turns actually run together.

Model busy ≠ CPU usage. It describes tracked turn intervals. Completed turns are recorded turn endings, not a count of successful project deliveries.

Open actual Work patterns ↗

All demo figures are synthetic. Real statistics describe recorded Attend activity; coverage and minimum sample requirements are shown in the product. They are observations, not a productivity score or a claim that more parallelism is better.

05 / KEEP THE THREAD

A place for the things that happen between prompts.

Read is not the same as handled.

An unopened reply and a reply you have looked at carry different attention signals. Reading a conversation does not silently mark its follow-up handled. Reply, dismiss, or flag it again when needed.

GeneratingNew replySeen · follow-up pendingHandled

Small details, made for daily use.

The organizing surface is only the beginning. Open a group to see how the rest supports the same workflow.

01Find & organize

Search session metadata and transcripts with terms, phrases, exclusions, OR, and bounded regex. Use custom tags alongside provider/project tags, tag counts, any/all matching, priority filtering, multiple Focus views, and All / Active / Unread. Pin, hide, reorder, bulk-delete tags or remove session bindings. Edit titles and jump to related tagged chats.

02Read & continue

Start and resume supported CLIs in the browser. Stream responses, stop a turn, attach or paste files and images, and answer supported provider questions. Collapse completed turns, load older history on demand, jump to pinned passages, preview diagrams and attachments, and reveal local file paths.

03Decide & follow up

See brief summaries, priority with a reason, and an estimated time to re-enter a task. Choose preset or custom colored state labels. Distinguish generation, new replies, seen follow-ups, and handled work. Background analysis offers next-message completion and a separate probe for a concrete claim or evidence gap. Suggestions remain drafts.

04Queue & schedule

Durable queues preserve follow-up instructions beyond a browser reload. Edit or remove queued work, choose an instruction to send now, or fork it. Stopping a turn preserves and holds the remaining queue. One-time schedules cover messages, new sessions, forks, and comments. Scheduled session/fork cards appear in the session list; manage queued and scheduled messages in the conversation. This is not a recurring scheduler.

05Branch & carry context

Comment on messages or text selections, queue comment replies, and promote a discussion into its own task. Fork from a draft or queued turn, keep or switch providers, and inspect the fork tree. Pin passages and reference them with @; queued references keep a snapshot of the selected context. Native fork support differs by CLI.

06Make the console yours

Choose system, light, dark, or custom themes. Edit theme JSON with live preview, import/export palettes, and search available colors. Customize panel layout and responsive settings. Save reusable provider/model/effort presets. Directory scopes retain their preferences across restarts and port changes. Review recent local work statistics.

06 / KEEP YOUR TOOLS

One way to organize. Honest differences underneath.

All six integrations support browsing, search, in-browser conversations, and analysis. Execution uses the installed CLI and its account. Some capabilities depend on the provider and version.

CLIForkSteer a running turnInteractive questionsGoals
Claude CodeNativeNativeNativeNative
Codex CLINativeNativeNativeNative
Cursor CLITranscript-seeded—Reply next turn—
Antigravity CLITranscript-seeded—Reply next turn—
GitHub Copilot CLITranscript-seeded—Reply next turn—
OpenCodeTranscript-seededNativeNative—

Transcript-seeded branches start a new session with visible parent history; they are not native provider forks. Cursor, Antigravity, Copilot, and OpenCode attachments are passed as local file paths. Attachment types vary by provider; Codex does not accept PDF attachments. “Goals” refers to Attend’s supported goal mode, not a guarantee of autonomous completion.

Local state. Explicit model calls.

Attend binds to 127.0.0.1 by default. Its tags, labels, notes, queues, and preferences live in your local Attend database; original transcripts remain managed by their CLIs. Organizing your work does not require an Attend cloud account.

Running coding sessions uses the selected provider. Background analysis can also make model calls and consume your provider allowance or incur charges. Economical mode may fall back to the work-session model; choose Off in Settings to stop new background AI analysis. Local storage does not mean all inference is offline.

07 / START WHERE YOU WORK

One command. Your own workspace.

Requires Node.js 22.13+ and a supported CLI installed and authenticated. Attend detects your available CLIs and opens the local console.

Open one project
npx --package=@sinphife/attend attend "$PWD"
Install the command
npm install --global @sinphife/attend
attend

http://localhost:5050

Before you begin

Can I use Attend here in the browser?

The embedded demo uses the real Attend interface with a synthetic workspace and an in-memory backend. You can explore organization, analysis, relationships and statistics. Sending prompts and starting CLI work are disabled. The full app runs locally with your installed CLIs and session history.

Will all my old conversations get AI analysis?

Historical sessions can be browsed and searched. Paired analyzer sessions are created for supported sessions started or forked in Attend; older external sessions may use local heuristics instead.

Do custom labels stay forever?

Tags are persistent organization. A custom state label describes the current handoff and overrides delayed analysis for that turn. Beginning a new conversation turn clears turn-specific state and color so they do not describe the new work incorrectly.

What happens if I close the browser?

Attend-owned queues and scheduled jobs are durable. Closing a tab does not itself stop the local service. Scheduled work needs the service to be running; stopping Attend stops active work.

ATTEND / LOCAL-FIRST / OPEN SOURCE

Leave yourself a way back in.

Start with one tag and a label that means something to you.