Concurrent Multi-Session Orchestration
the core: spawn, monitor, and manage many Claude Code sessions at once across projects
- Concurrent sessions — run many Claude Code sessions in parallel across unlimited projects.
- Background process management — each session runs as a managed child process, spawned, monitored, and reaped by the app.
- Multi-provider sessions — run sessions on Claude, Codex, Gemini, and other engines side by side, each isolated.
- Auto vendor routing — pick a model once and never touch the vendor: every non-Claude session (DeepSeek, GLM, Kimi, MiniMax, Meta, Qwen, OpenRouter) is served by the first row of its model family's supply list that can serve — your own key with the maker or a reseller, or Omniscio credits — set in Settings → Accounts → Who pays & who serves.
- Real-time status dashboard — every session's live state shown at a glance in the sidebar and inbox.
- Attention-first inbox — sessions needing you surface to an inbox; you respond and move on, no babysitting.
- Per-session live output stream — watch the agent's output stream into each panel in real time.
- Keep-alive panel pool — recently-viewed panels stay mounted so switching back is instant.
- Invisible concurrency pacing — spawns/searches/git are paced box-wide to protect the machine, never the user.
Session Statuses & Attention-First Design
a fixed status vocabulary that drives color, sorting, and notifications
- Eleven session statuses — running, needs-you, error, stalled, starting, ready, terminating, ended, archived, paused, waiting.
- Color coding — Running green, Needs-You amber, Error/Stalled red, Waiting ember-orange (capacity park), Primary accent.
- Pending-action detail — the attention state carries why: question, plan approval, permission, rate-limited, suspended.
- Attention floats to top — needs-you / error / stalled sessions sort above idle ones.
- "Stay on it" during revival — a session you're watching come back to life isn't yanked away.
- Status-driven notifications — OS + in-app alerts fire on transitions into attention states.
Mid-Stream Messaging & Interrupt
talk to a session while it's still working
- Send while running — type mid-turn; the app delivers into the live process or kills+respawns cleanly, context preserved.
- Interrupt without killing — stop the current output (Esc or Stop) and keep the session alive for the next instruction.
- Esc-key interrupt guard — mashing Escape can't fire duplicate interrupts.
- Provider-aware interrupt — non-Claude sessions route interrupt through their own engine so the turn really stops.
- Live streaming ticker — a "streaming… Nm Ns" ticker shows the running turn's elapsed time.
- Interrupt acknowledgement — an "interrupt sent" cue the instant the gesture registers.
full create-to-retire lifecycle with honest state transitions
- Create / spawn — start a fresh session in any project.
- Always resumable — ended sessions resume on the next message.
- Pause / unpause — kill the running agent and park the session; flip it back when ready.
- Snooze — hide an attention session until a chosen time; auto-wakes when due.
- Save (shelve) — flag valuable/completed work into a collapsible "Saved" sidebar section.
- Archive / unarchive — retire a session (clears draft/snooze, triggers worktree merge) or restore it.
- Close / terminate — stop a session's process and remove its panel.
- Stop sticks — a session you stop stays stopped; auto-restart, agents and the auto-lander never revive it until you restart or message it.
- Crash recovery — sessions running when the app died auto-resume on next launch.
- Genuine-error persistence — a session you saw go red stays red across restart.
- Runaway-spawner guard — a session that spawned children is never auto-resumed after a crash.
- Pop-out window restore — popped-out sessions reopen automatically next launch, even after a crash.
- In-session activity notes — automatic pause/resume/archive markers appear inline in the transcript.
- Move to project — relocate a session to a different project, with undo.
keep critical sessions one click away
- Pin to top — pin a session so it sorts above the list in its project.
- Pin/unpin toggle — from the header and the overflow menu.
- Optimistic with rollback — pin flips instantly; a silent failure reverts with a toast.
Draft Persistence (Crash-Safe)
never lose an unsent message
- Auto-save drafts — unsent composer text saves continuously and survives session switches.
- Three-layer durability — in-memory → localStorage → SQLite, so a hard refresh keeps your text.
- Pasted images & text-chips persist — pasted images and large pasted-text blocks survive reload.
- Cross-client draft sync — draft clears echo across desktop + paired mobile without clobbering active typing.
- Identity-scoped wipe — drafts blanket-clear on account change so text can't leak to the next user.
- Teardown flush — a graceful close flushes pending drafts losslessly.
Session Cost, Token & Turn Tracking
per-session spend and usage tracked automatically
- Per-session USD cost — accumulated cost tracked per session, shown as a header chip.
- Every session shows its cost — the dollar chip appears for every session with a known cost, from $0.00 onward, whatever the billing model.
- Estimated-cost marker — token-priced engines show a "≈" prefix to read honestly.
- Turn count & token totals — turns and input/output tokens shown in Session Stats.
- Turn duration badges — each finished turn shows "took Nm Ns".
- Cross-compaction duration — compaction dividers show total active time, excluding idle gaps.
Context Window Usage Indicator
see how full a session's context is, and get warned before it fills
- Context donut/bar — a header indicator shows real context usage with color thresholds.
- Details popover — click for a detailed breakdown of context usage.
- 75% & 90% warnings — persistent amber dividers at "context filling" and "compaction imminent".
- Warn-once per fill-up — de-duped so a respawn/restart doesn't re-fire.
- In-message toggle — turn either threshold off without opening Settings.
- Efficient polling — the authoritative query runs once per turn, gated on visibility + fullness.
Budget Caps (Soft & Hard)
prevent runaway costs on pay-per-use keys
- Per-session hard cap — force-kill a session when its cost crosses a limit.
- Per-session soft warning — a one-time warning well before the hard kill.
- Per-account daily cap — stop sessions + block new spawns once a key's daily spend crosses a limit.
- Per-provider daily cap — optional per-vendor daily spawn+kill cap (off by default).
- Subscription exemption — subscription sessions are never spend-capped.
- Runaway-spend anomaly alert — an alert when a metered vendor's daily spend spikes.
- Fail-open safety — an unreadable ledger never kills a paid session you're running.
reverse lifecycle actions with Ctrl+Z
- Ctrl+Z undo — reverse your last session action (pause, snooze, archive, move, rename, close, color).
- Multi-level history — a bounded stack walks back through recent actions.
- Field-aware arbiter — undoes the action from a text field when pristine, yields to native text-undo once you type.
- Undo toast (opt-in) — a focus-independent Undo button on a toast.
- Honest reversal — undo of pause/close returns the row to "ended", never faking a live agent.
rename a session by hand (AI titles are separate)
- Inline rename — edit the title in the header.
- Rename from menu — via the overflow menu.
- Optimistic with rollback — updates instantly; a failure rolls back with a toast.
- Rename undo — Ctrl+Z restores the prior name.
send images, PDFs, and large pasted text with a message
- Paste images — sent inline to the agent as image blocks.
- PDF attachments — delivered as native document content.
- Text-document attachments — large text docs saved to the workdir and referenced.
- Pasted-text chips — big text blocks become collapsible chips spliced into the message.
- Per-session storage — attachments saved to per-session directories.
- Pending strip + lightbox — preview queued images/chips before sending.
3+ images in an AI reply become one swipeable carousel instead of a tall stack
- Count badge — a corner counter (like 3 / 12) shows which image of how many.
- Mobile swipe — swipe through the images without flipping to the next session.
- Desktop arrows — prev/next buttons, greyed at the ends.
- Tap to open full-screen — opens the current image in the existing viewer.
- Inline for 1–2 — a single or pair of images stays stacked as before.
- Display-only — copy and export keep the original message.
Swipe Navigation (Mobile)
move between sessions with a flick on a phone
- Horizontal session swipe — swipe left/right for previous/next session.
- Scroll-aware commit — only commits once a scrollable child is pinned to its edge.
- Velocity + offset thresholds — ignores accidental micro-drags.
- Prev/next arrows — optional header arrows on mobile.
- Swipe-to-dismiss overlays — a downward flick closes big mobile overlays.
Send Later (Scheduled Delivery)
queue a message to a session for a future time
- Schedule a response — pick a future time to deliver a composed message (Ctrl+Shift+L).
- Scheduled attachments — images, PDFs, and text-chips delivered with the message.
- Status-aware delivery — delivers into a live process (interrupting) or resumes an ended/paused session.
- Auto-unpause / un-archive — a due message wakes a paused/archived/snoozed target.
- At-most-once delivery — atomic claim guards against double-delivery.
- Retry then give up — up to 3 attempts across restarts, then a system message.
- Visible failure alert — a deduped inbox alert when a scheduled reply can't be delivered.
- Cancel scheduled — clear a pending scheduled message before it fires.
Session Tags & Tags Library
Opt-in
label and cross-organize sessions
- Free-form tags — ad-hoc tags on a session (max 10, 30 chars).
- Library tags — reusable named tags applied across sessions.
- Header tag chips — tags render as a chip strip under the title.
- Mobile tag collapse — multiple tags collapse to first + "+N" on mobile.
- Tags Library hub — a hub to manage tags and see tagged sessions cross-session.
- Tag chip context menu — edit/remove a tag from its chip.
turn a transcript into a shareable document
- Copy as Markdown — copy the visible conversation with a token-count toast.
- Copy since last compaction — copy only from the last compaction divider forward.
- Export to file — save the transcript as Markdown, Word (opt-in), or PDF.
- Export to Google Docs — publish the transcript to a new Google Doc (opt-in).
- Visible-only export — strips tool-call markers and system rows; keeps prose + your messages.
- Raw thread export — a troubleshooting file with every stored message verbatim, each labelled shown, folded or hidden (unredacted).
- Size preview — the menu shows words · chars · ~tokens before you export.
Detachable / Pop-Out Windows
give a session its own OS window
- Pop out to window — open a session in a standalone window.
- Geometry memory — popped-out windows remember position/size.
- Restore on launch — reopen automatically next start (crash-safe).
- Push routing — detached windows still receive their session's live updates.
Session Controls & Message Filters
the per-session action hub
- Overflow action menu — snooze, pause, send-later, copy link, archive, rename, and more in one menu.
- Message filter — filter the transcript by All / Agent / You.
- Events filter — a day-grouped list of lifecycle/system events for troubleshooting.
- Aside mode — ask a throwaway side question in a branch, excluded from the main transcript.
- Copy deep link — copy a deep link to the session.
- Attach to task — link a session to a task.
- Session resources popover — a diagnostic view of the session's live process tree.
- Per-session MCP servers — configure MCP servers for one session.
- Customize session bar — promote chosen menu actions to one-tap header buttons; right-click a menu action to pin it, or use the Settings checklist.
- Fixed scroll policy — hardcoded, non-configurable transcript scrolling with jump buttons.
your own regex rules that turn matching conversation text into inline badges
- Your own regex → a badge — each rule is a regex; its matches in message text (agent output and your own messages) render as an inline badge instead of plain text.
- Tone & icon — pick a badge color (neutral / accent / success / warning / danger / info) and an optional icon from a small curated set.
- Label & link templates — build the badge's text and an optional clickable http/https link from the match, using `$0` (whole match) and `$1`..`$9` (capture groups).
- Live "test it" preview — see the badge and its resolved link on a sample line before you save.
- Manage the list — add, edit, reorder (first match at each position wins), toggle, and delete rules in Settings → Sessions → Custom Render Rules.
- Master toggle — one switch disables all custom rendering without deleting your rules.
- Safe rendering — real UI badges (no raw HTML), http/https-only links, code blocks and existing links skipped, and invalid / zero-width / greedy regexes guarded; zero cost when you have no rules.
a control-group project whose sessions spawn a vanilla, blank-context agent for testing and comparison
- Vanilla session spawn — every session inside Clean Room runs the engine with none of your customizations and none of Omniscio's added layers.
- Full customization strip — no global CLAUDE.md rules, memory, skills, project instructions, or connected MCP tools reach the session (via the CLI's own safe-mode).
- Omniscio-layer strip — the awareness note, Plain Speak, conversation markers, publish/convert/download shims, and the question-widget instruction are all omitted.
- Hook-free, empty scratch folder — no PreToolUse/PostToolUse hooks fire, and the session starts in a fresh empty working directory with no repo or files.
- Real engine kept — it is still Claude Code with its own base identity and native tools, so it is a fair control group, not a raw model or a permission jail.
- Per-session engine picker — choose the engine per session (Claude by default, plus the Claude-compatible DeepSeek / Kimi / GLM / MiniMax).
- Built-in sidebar project — appears among the projects like Session Search, not a folder on disk.