Nanobot

Nanobot opens a native terminal UI beside collaborative sessions

Nanobot proposes a native TypeScript terminal interface while a separate Web UI change adds session collaboration through mentions. An earlier terminal-UI attempt is closed, giving the current proposal a visible predecessor rather than a feature appearing without design history.

← Back to homeOriginal source ↗

HKUDS/nanobot PR #5406 is the inspected primary source: “feat(cli): add native TypeScript terminal UI.” The related records below were inspected as supporting context rather than independent confirmation.

The facts

- HKUDS/nanobot PR #5406 was created 2026-08-16T17:55:04Z and was open at inspection; its title is “feat(cli): add native TypeScript terminal UI.” - HKUDS/nanobot PR #5358 was created 2026-08-12T11:29:28Z and was open at inspection; its title is “feat(webui): add session collaboration via mentions.” - HKUDS/nanobot PR #4329 was created 2026-06-13T09:49:50Z and was closed at inspection; its title is “feat(cli): add native TypeScript terminal UI.” - The repository reported 47067 stars, 704 open issues, default branch main, and last push 2026-08-16T20:00:22Z. - The latest tagged-release baseline checked was v0.3.0 published 2026-07-25T08:08:47Z.

What changed

HKUDS/nanobot PR #5406 reports: Recovery note Supersedes #4329. That PR was mistakenly marked merged when its head briefly appeared on main; main was immediately restored, so none of its changes are currently present there. This PR carries the same contiguous commit history plus the final cross-terminal test fix. The original contribution and direction from @pancacake, together with @chengyongru's cross-platform work, remain GitHub-recognized through the existing co-author trailers and unchanged commits. Summary Rebuilds nanobot agent as a native TypeScript/OpenTUI client while preserving the Python gateway as the only implementation of the agent loop, sessions, tools, memory, and security policy. Product behavior Fixed bottom composer with a retained, reflowable transcript and one terminal scroll model. Correct CJK/IME input, Shift+Enter multiline editing with Ctrl+J fallback, Markdown streaming, light/dark themes, selection copy, keyboard scrolling, and clean terminal restoration. Session-native workflow: reopen the last TUI chat, browse/search/create sessions, page older history, inspect context, review diffs, and branch from a completed reply. Live sessions across terminals and WebUI: user messages, attachments, mentions, agent output, and tool progress synchronize while the gateway executes each input once. Gateway-owned slash commands plus unified @ completion for installed CLI apps, configured MCP servers, and saved sessions. During an active turn, Enter steers immediately, Tab queues a visible FIFO follow-up, and Option+Up on macOS (Alt+Up

HKUDS/nanobot PR #5358 reports: Summary give each persisted WebUI session a stable, server-owned @name without exposing raw session keys to the agent extend the existing composer mention picker so users can select peer sessions, with stable identity colors and current-tab peers prioritized expose self and explicitly mentioned peers in runtime context, then let agents enqueue independent peer turns through message(to="@name", content="...") persist incoming peer provenance in transcripts and render it separately from human messages keep peer execution isolated from slash commands, human-turn routing side effects, source workspace metadata, and source final-response suppression Delivery and lifecycle Peer delivery is asynchronous: tool success means the target turn was accepted into a bounded process-local queue, not that it completed. Busy targets process peer turns independently in FIFO order. This change also binds peer, automation, background persistence, and WebUI outbound work to a SessionManager generation. Deleting and recreating a session cannot let stale work revive the deleted session or transcript. UX details plain typed @text remains ordinary text; only a structured picker selection creates a peer mention the picker excludes the current session and sessions outside the active workspace mention identity survives refresh and remains consistent across devices temporary chats do not promote peer collaboration queued prompts revalidate peer identities before sending no advanced collaboration topology screen is

HKUDS/nanobot PR #4329 reports: Summary Rebuilds nanobot agent as a native TypeScript/OpenTUI client while preserving the Python gateway as the only implementation of the agent loop, sessions, tools, memory, and security policy. This keeps @pancacake's original terminal-product direction and @chengyongru's cross-platform intent. Both contributors remain recognized by GitHub through contiguous Co-authored-by trailers. Product behavior Fixed bottom composer with a retained, reflowable transcript and one terminal scroll model. Correct CJK/IME input, Shift+Enter multiline editing with Ctrl+J fallback, Markdown streaming, light/dark themes, selection copy, keyboard scrolling, and clean terminal restoration. Session-native workflow: reopen the last TUI chat, browse/search/create sessions, page older history, inspect context, review diffs, and branch from a completed reply. Live sessions across terminals and WebUI: user messages, attachments, mentions, agent output, and tool progress synchronize while the gateway executes each input once. Gateway-owned slash commands plus unified @ completion for installed CLI apps, configured MCP servers, and saved sessions. During an active turn, Enter steers immediately, Tab queues a visible FIFO follow-up, and Option+Up on macOS (Alt+Up elsewhere) returns the latest queued message for editing. Drafts survive failures and reconnects. Provider-backed input/output/cache/context telemetry without invented cost estimates. Compact semantic activity rows (Read, Edited, Testing) with retained details behind Ctrl+O; private reasoning is never rendered as transcript noise. Herdr host mode When launched inside

Why it matters

Two interface proposals point beyond a single-bot shell: operators want both low-latency local control and explicit multi-user coordination around the same session state. The operator test is whether the system remains bounded and its receipts still describe the action after failure, retry or restart.

Current

The primary record was open when captured on 2026-08-17. The tagged-release baseline was v0.3.0 published 2026-07-25T08:08:47Z. Repository metadata, full source bodies, current pull requests and issues, releases, Google News, Hacker News, Lobsters, Metamesh and the rendered ClawCharts row were inspected. ClawCharts selected the subject; it did not prove the claim.

Evidence

The primary URL is https://github.com/HKUDS/nanobot/pull/5406. Supporting records are https://github.com/HKUDS/nanobot/pull/5358 and https://github.com/HKUDS/nanobot/pull/4329. Source bodies, timestamps and states are preserved in the daily evidence bundle. Test counts and reproductions remain attributed to their authors unless identified as independently rerun.

Source boundary

Open work is described as open, closed work as closed, and operator reports as reports. A pull request is evidence of proposed or reviewed direction, not proof of a shipped release. Search residue, package mirrors and historically published source spines were excluded.

Operator take

Define one session and permission contract across terminal and web surfaces, preserve author identity for mentions, and test reconnect behavior before presenting either interface as interchangeable. Preserve a before-state receipt, make the smallest reversible change, and verify the original failure independently.

Caveat

Public project records are mutable. Status, scope and evidence can change after publication. This brief records the inspected state and does not authorize changes to a reader’s deployment.

Source inspected; source state, environment and release boundary remain explicit.