Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SillyBunny Terminal UI

A command-first interface for SillyBunny. It keeps the native chat prompt and slash-command system, then reduces the surrounding UI to a tmux-style statusline, flat transcript, and fzf-like command results.

Screenshots

On the default Phosphor Green palette.

Terminal Home
Terminal Home with the statusline, prompt, and scrollable command reference
Slash-command preview
Native slash-command preview above the Terminal Home prompt
Conversation Mode
SillyBunny Conversation Mode styled by Terminal UI
Mobile Home
Terminal Home at a narrow mobile viewport

Interaction

The normal SillyBunny composer remains the only prompt:

  • Plain text sends chat.
  • A leading / uses SillyBunny slash commands and autocomplete.
  • Alt+Up and Alt+Down use native input history.
  • Ctrl+Space opens or expands native command autocomplete.
  • The native Home is replaced by a centered, prompt-only REPL in both interface densities; /home and /hide-home return to Terminal Home, while /open-homepage explicitly reveals SillyBunny's native Home when needed.
  • The empty state keeps a compact, scrollable command reference next to the prompt; typing / still opens native slash autocomplete.
  • The chat toolbar (Quick Replies, Guided Generations) and the bottom chat-management bar follow the interface: on in Full chrome (the default), stripped in Terminal density. Force either state with /show-chat-topbar / /hide-chat-topbar, /show-bottom-bar / /hide-bottom-bar, or the checkboxes in the extension drawer. Terminal UI preserves the native send control whenever SillyBunny exposes it, including for desktop users who disable Enter-to-send.
  • Every visibility toggle is available three ways — a checkbox in the extension drawer, a slash command, and /sbterm. A toggle you have never touched follows the interface density; once set, it applies in both densities.
  • The Moonlit Echoes theme extension is automatically muted while Terminal UI is active — the two restyle the same surfaces and conflict. Its stylesheets are switched back on the moment Terminal UI is turned off; no Moonlit settings are changed.

Full chrome is the default interface. Terminal density removes optional composer controls while retaining native send and conditional stop/script controls; switch with the Interface dropdown in the extension drawer or /sbterm ui terminal.

/sbterm

Terminal UI adds /sbterm and /home and does not replace native commands such as /api, /model, /preset, /theme, /chat-manager, /go, or /newchat.

Command Action
/sbterm status Show the live character/chat, API/model, run state, and last prompt token diagnostics
/sbterm on / /sbterm off Enable or disable the interface without disabling the extension
/sbterm ui terminal / /sbterm ui full Switch terminal density or full host chrome
/sbterm palette <slug> Select one of the 37 palettes
/sbterm crt on / /sbterm crt off Toggle the optional CRT overlay
/sbterm avatar-tint on / /sbterm avatar-tint off Tint avatars to the active palette
/sbterm <destination> Open a SillyBunny shell or workspace
/home Return to the terminal Home screen (/open-homepage shows the native Home page)

Destinations: workspace, presets, api, sampling, formatting, agents, customize, settings, extensions, background, server, logs, characters, groups, editor, world-info, persona, import, search, chat-tools, appearance, home, conversation, and roleplay.

Every destination also has a top-level alias: /open-workspace, /open-presets, /open-api, /open-model, and so on. Visibility toggles: /hide-top-navbar, /show-top-navbar, /hide-home, /hide-avatar, /show-avatar, /show-chat-topbar, /hide-chat-topbar, /show-bottom-bar, and /hide-bottom-bar.

The same slash-command autocomplete and /sbterm command work from Conversation Mode. Its existing /selfie, /remind, /schedule, /summarize, /ooc, and normal message behavior are left untouched.

Statusline

The top line reports real host state, for example:

run:idle | chat:Nahida/Rooftop Talk | api:openrouter/claude-3.7 | prompt:11.8k/32.8k

The run state comes first so it survives truncation. When disconnected, the line starts with run:disconnected and the adjacent connect button opens API settings. more reveals the complete status as a toast. Prompt tokens are counted from the last fully assembled request. Conversation Mode can use a scoped connection, so it reports prompt:n/a rather than showing stale Roleplay data.

Boot splash

The loading screen follows the active palette and shows the Terminal UI bunny in place of the SillyBunny badge. The bunny is a CSS mask, so it takes the palette accent rather than a fixed colour, and the 30px backdrop blur is dropped.

Terminal UI boot splash on desktop Terminal UI boot splash on mobile

Palettes

Hardware and editor palettes: phosphor-green, terminal-amber, gameboy-dmg, gameboy-dmg-dark, teletext, chrome-98, dos-cobalt, paper-tape, paper-tape-dark, vfd-cyan, dracula, gruvbox, solarized-dark, nord.

Ported from SillyBunny-Regex-Agent-Themes, which shares the naming: neon-grid, chrome-hud, glitchwave, circuitry, datastream, biometric-lab, hazard-console, vaporwave-sunset, synthwave-drive, arcade-cabinet, cassette-future, newsprint, blueprint, eldritch-deep, steampunk-brass, celestial-chart, frost-rune, monochrome-slate, ember-hearth, construction-paper, midnight-kawaii, night-orchid. Those themes carry type, glyphs and frames as well as colour; only the colour survives here, because a palette is eleven custom properties and nothing else.

And inherit, which follows whichever SillyBunny theme is active. See the palette gallery for all thirty-seven, desktop and mobile.

CRT scanlines are optional and off by default. Motion stops under prefers-reduced-motion; the overlay is removed under forced colors or increased contrast.

Avatar tinting is optional and off by default. It reaches every avatar — including the bottom bar’s persona bubble and the persona picker, which the host paints differently from the rest. Turned on — with Tint avatars to palette in the extension drawer or /sbterm avatar-tint on — every avatar is redrawn in the palette rather than recoloured: its tones are remapped so highlights land on the palette and shadows fall away, the way a phosphor screen or a DMG panel draws a picture. Dark palettes light the picture up in the accent; the five light palettes print it as ink on the page instead. It covers character, persona, group, chat and Conversation Mode avatars, follows every palette including inherit, and is switched off under forced colors.

Install

Clone or symlink the extension into data/<user-handle>/extensions/:

git clone https://github.com/SillyBunnyTeam/SillyBunny-Terminal-UI.git

Reload SillyBunny, then configure it under Extensions > Terminal UI. Settings use SillyBunny's standard extension store.

Development

npm test
npm run lint

The extension ships as native browser modules with no build step or runtime dependency.

npm run capture:palettes regenerates the gallery shots. It is a maintainer script, not part of the extension: it needs a SillyBunny already running on port 4444 with this extension enabled, plus Playwright and cwebp. Pass --only <slug> to reshoot one palette.

License

AGPL-3.0

About

A terminal-inspired UI extension for SillyBunny.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages