A Tauri-powered terminal aggregator with multi-workspace support and built-in AI agent integration Manage multiple project terminals in one window, with built-in Claude Code and Codex agent panels, file browser, git viewer, snippet manager, and remote access
$ npx -y skills add tony1223/better-agent-terminal --agent claude-code
Run the curl in your terminal, the rest in Claude Code.
Repo: tony1223/better-agent-terminal
What's inside
A Tauri-powered terminal aggregator with multi-workspace support and built-in AI agent integration
Manage multiple project terminals in one window, with built-in Claude Code and Codex agent panels, file browser, git viewer, snippet manager, and remote access โ all in a single Tauri app.
Version 3.0 is the Tauri-only release. The Electron runtime has been removed; the app now uses a Rust/Tauri host, a React renderer, and a small bundled Node sidecar only where JavaScript SDK/runtime support is still required.
Mobile apps require Better Agent Terminal v3.1.3 or later.
Claude Code Agent Panel โ Built-in AI agent with permission controls, status line, and streaming output
Terminal โ Run persistent terminals alongside your agent for long-running commands and monitoring
File Browser โ Browse and preview project files without leaving the app
Git Viewer โ View commit history and diffs at a glance
.md files in a dedicated right sidebar panel with live file watching and right-click context menuA configurable status bar at the bottom of the agent panel, with 15 items across three zones (left / center / right):
| Item | Description |
|---|---|
| Session ID | First 8 chars of SDK session ID (click to resume a past session) |
| Git Branch | Current git branch name |
| Tokens | Total input + output token count (click for context breakdown) |
| Turns | Number of conversation turns |
| Duration | Session duration |
| Context % | Percentage of context window used (color-coded) |
| Cost | Total session cost in USD |
| Workspace | Current workspace name |
| 5h Usage / Reset | 5-hour API rate limit usage and reset countdown |
| 7d Usage / Reset | 7-day API rate limit usage and reset countdown |
| Max Output | Maximum output tokens for current model |
| Cache Eff. | Cache read efficiency percentage (click for cache history with per-turn cost breakdown) |
| Prompts | Link to view prompt history |
Items can be reordered, colored, and toggled on/off via a drag-and-drop template editor in Settings.
/switch to manage and switch between multiple Claude accountsOptional alternate agent backend powered by @openai/codex-sdk. Pick Codex Agent (or Codex Agent (worktree)) from the agent preset list when creating a terminal.
read-only, workspace-write, or danger-full-accessuntrusted, on-request, or never (auto)~/.codex/sessions/ are auto-indexed; resume hits a local cache so re-opening a thread is fast even with months of historyplan items render as approvable blocks in the panelOptional integration with cx โ a tree-sitter-based CLI that gives agents file overviews, symbol search, definitions, and references without spinning up a language server. Useful for cutting context tokens on large codebases: agents can run cx overview (~20 tokens) before deciding which files to actually read.
When enabled in Settings โ Agents โ cx semantic navigation, BAT:
cx on PATH (or uses a custom binary path)cx overview / symbols / definition / references over full file readsCX_CACHE_DIR to a per-app cache directory so repeated queries are fastInstall:
| Platform | Command |
|---|---|
| macOS (Homebrew) | brew tap ind-igo/cx && brew install cx |
| Cargo | cargo install cx-cli |
| macOS / Linux (script) | curl -sL https://raw.githubusercontent.com/ind-igo/cx/master/install.sh | sh |
| Windows (PowerShell) | irm https://raw.githubusercontent.com/ind-igo/cx/master/install.ps1 | iex |
After installing, run cx lang add <language> for each language you want grammars for (e.g. rust, typescript, python), then toggle the option in BAT settings. The toggle is off by default โ agents continue to work normally without cx installed.
| Shortcut | Action |
|---|---|
Ctrl+` (Windows) | Switch to the next BAT window |
Cmd+` (macOS) / Ctrl+` (Linux) | Toggle between Agent terminal and first regular terminal |
Ctrl+โ/โ / Cmd+โ/โ | Cycle workspace tabs (Terminal / Files / Git) |
Ctrl+โ/โ / Cmd+โ/โ | Switch to previous / next workspace |
Ctrl+P / Cmd+P | File picker (search & attach files to agent context) |
Ctrl+N / Cmd+N | Open new window |
Ctrl+Shift+T / Cmd+T | Open the new-terminal quick-pick (choose Shell, Worktree, Claude / Codex agentโฆ) |
Ctrl+Shift+W / Cmd+Shift+W | Close the focused terminal |
Shift+Tab | Switch between Terminal and Agent mode |
Enter | Send message |
Shift+Enter | Insert newline (multiline input) |
Escape | Stop streaming / close modal |
Ctrl+Shift+C | Copy selected text |
Ctrl+Shift+V | Paste from clipboard |
Right-click | Copy (if text selected) or Paste |
| Command | Description |
|---|---|
/resume | Resume a previous Claude session from history |
/model | Switch between available Claude models |
/new / /clear | Reset session (clear conversation, fresh start) |
/abort | Stop the current agent session immediately |
/snippet | Show snippets to Claude for management |
/switch | Switch between Claude accounts |
/login | Sign in to Claude (switch account) |
/logout | Sign out of Claude |
/whoami | Show current account info and usage |
/auto-continue / /ac | Auto-resend a prompt when the agent stops โ see Auto-Continue |
Some tasks are too long to finish in a single turn โ the agent stops mid-plan, or pauses waiting for the user to say "keep going". /auto-continue (alias /ac) tells the host to re-send a prompt automatically when the turn ends, up to N times.
Syntax (typed into the agent input box):
/auto-continue # enable, max 3, prompt="็นผ็บ"
/auto-continue 5 # enable, max 5, prompt="็นผ็บ"
/auto-continue ็นผ็บๅๅฎ # enable, max 3, custom prompt
/auto-continue 10 keep going # enable, max 10, custom prompt
/ac 5 # short alias
/auto-continue off # disable (also: /ac stop)
Behavior
0 every time you manually send a new message โ your own input always restarts the budget.subtype=success; errors, abort, max-turns, or rate-limit halts stop auto-continue.<prompt> [auto N/max] in the message list so you can tell the agent didn't type that./abort and manual session stop clear the auto-continue state.Tips
/auto-continue 5 ่ซไพ็
ง plan ็ step ็นผ็บ๏ผๅๅฎไธๆญฅๅฐฑๅไธ instead of just ็นผ็บ โ the agent behaves more predictably.max (3โ5) the first time you try it on a new task, then raise it once you trust the loop./ac off before a long lunch break โ auto-continue will happily burn credits while you're away.brew install --cask tonyq-org/tap/better-agent-terminal
choco install better-agent-terminal
Package is currently pending review on Chocolatey.org.
Download from Releases for your platform:
| Platform | Format | Architectures |
|---|---|---|
| Windows | NSIS installer, .zip | x86_64 |
| macOS | .dmg | Apple Silicon (arm64) & Intel (x86_64) |
| Linux | .AppImage | x86_64 & arm64/aarch64 |
The x86_64 AppImage keeps its historical name (BetterAgentTerminal-<version>.AppImage); the arm64 build is published as BetterAgentTerminal-<version>-arm64.AppImage. The install script picks the right one automatically.
Headless / remote server (e.g. ARM cloud hosts):
The same AppImage doubles as a headless remote server โ handy for an arm64 cloud box you drive from a mobile/remote client:
# arm64 host
./BetterAgentTerminal-<version>-arm64.AppImage --bat-server --help
Since it is a WebKitGTK app, on a box with no display server, run it under a virtual display:
xvfb-run -a ./BetterAgentTerminal-<version>-arm64.AppImage --bat-server
On enterprise ARM Linux (Oracle Linux 9 / RHEL 9, glibc 2.34) the desktop AppImage's WebKitGTK layer will not load. Use the self-contained
bat-serverbundle instead โ it is statically linked and needs no display; see Self-contained Linux bundle below (bat-server-linux-aarch64).
macOS DMG installation:
.dmg file from Releases.dmg to mount itnpm install -g @anthropic-ai/claude-code if you prefer to use a system-wide CLI; BAT will pick the global one when present.)Prerequisites:
/login inside the app, or pre-authenticate the Claude Code CLI โ the binary is bundled, no separate global install required)git clone https://github.com/tony1223/better-agent-terminal.git
cd better-agent-terminal
corepack enable
pnpm install
Development mode:
pnpm run dev
Build for production:
pnpm run build
For an unsigned local installer/package check, use:
pnpm run tauri:build:debug
Run the following command in your terminal (macOS, Linux, or Windows with Git Bash/MSYS2):
curl -fsSL https://raw.githubusercontent.com/tony1223/better-agent-terminal/main/install.sh | bash
This script will detect your OS and install the application to the standard location.
Native dependencies (node-pty, better-sqlite3) require Xcode Command Line Tools:
xcode-select --install
Then:
corepack enable
pnpm install
pnpm run dev # Development
pnpm run build # Build signed/release package when signing env is configured
pnpm run tauri:build:debug # Local unsigned package
better-agent-terminal/
โโโ renderer/ # React renderer running inside the Tauri webview
โ โโโ src/
โ โโโ App.tsx # Root component, layout, profile orchestration
โ โโโ components/ # Workspace, terminal, agent, file, git, settings UI
โ โโโ stores/ # Renderer state stores
โ โโโ locales/ # EN / zh-TW / zh-CN translations
โ โโโ types/ # Shared renderer/domain TypeScript types
โ โโโ host-api.ts # Tauri host adapter used by renderer code
โ โโโ styles/ # Component-specific styles
โโโ src-tauri/ # Tauri host runtime (Rust)
โ โโโ src/ # Commands, PTY, profiles, remote server, sidecar bridge
โ โโโ capabilities/ # Tauri IPC capability declarations
โ โโโ windows/ # Windows installer hooks
โ โโโ tauri.conf.json # Tauri app and bundle configuration
โโโ node-sidecar/ # Bundled Node sidecar for SDK/runtime pieces not yet native Rust
โโโ assets/ # App icons and screenshots
โโโ scripts/
โ โโโ build-version.js # Version string generator
โโโ package.json
@anthropic-ai/claude-agent-sdk + bundled @anthropic-ai/claude-code binary (Claude); @openai/codex-sdk (Codex Agent)BAT includes a built-in WebSocket server that allows other BAT instances or mobile devices to connect and control it remotely. This feature is currently experimental.
On the client BAT instance:
On the host BAT instance:
When a connected host advertises remote sign-in support, use the account chip
or /login from an agent panel. Claude opens its authorization URL on the
client and asks you to paste the returned code; Codex shows an official device
code and completes automatically after browser approval. The resulting
credential is finalized and stored on the host, not copied into the client.
BAT allows only one remote sign-in ceremony per provider at a time and temporarily blocks remote account switching while it completes. Authorization URLs, codes, and raw provider output are not written to BAT logs. Older hosts remain compatible: the client hides this flow and asks you to sign in from a terminal on the host until BAT is updated there.
If the host and client are not on the same local network (e.g., connecting from home to an office machine), we recommend using Tailscale to establish a secure peer-to-peer VPN:
100.x.x.x IP addressInstallation:
| Platform | Install |
|---|---|
| macOS | Download or brew install tailscale |
| Windows | Download |
| iOS | App Store |
| Android | Google Play |
| Linux | Install Guide |
After installation, sign in with the same account on all devices and they will be able to communicate. BAT's QR code will automatically use the Tailscale IP.
Warning: Enabling the Remote Server opens a WebSocket connection. Any device with the token can fully control BAT on the host machine, including executing terminal commands, accessing the file system, and controlling Claude Agent sessions.
- Do not start the server on untrusted networks
- Do not share the token with untrusted parties
- Shut down the server when not in use
- Strongly recommended to use Tailscale to avoid direct exposure to the public internet
bat-server)bat-server starts the same Tauri/Rust Remote Server without opening the GUI. It is useful for always-on hosts, SSH sessions, and container-style deployments where another BAT instance connects remotely.
pnpm run start:server -- --port=9876 --bind=localhost
Options:
| Option | Description |
|---|---|
--port=N | TCP port to listen on (default: 9876) |
--bind=localhost|tailscale|all | Bind only localhost, the first Tailscale 100.x.x.x address, or all interfaces |
--data-dir=PATH | Override the persistent state directory |
--token-file=PATH | Read a fixed connection token from an owner-restricted file (recommended) |
--token=HEX | Backward-compatible fixed token override; emits a warning recommending --token-file |
--debug | Enable debug logging |
Environment variables mirror the flags: BAT_DATA_DIR, BAT_TAURI_DATA_DIR, BAT_PORT, BAT_BIND, BAT_TOKEN_FILE, BAT_TOKEN, and BAT_DEBUG. BAT_TOKEN remains supported for existing automation and emits the same compatibility warning.
For direct launches, keep a fixed token in an owner-restricted file:
mkdir -p ~/.config/better-agent-terminal
(umask 077; head -c32 /dev/urandom | od -An -tx1 | tr -d ' \n' > ~/.config/better-agent-terminal/bat-server-token)
bat-server --bind=localhost --port=9876 \
--token-file=~/.config/better-agent-terminal/bat-server-token
If neither a token flag nor token environment variable is supplied, BAT continues to use its persisted/random token behavior for backward compatibility.
On startup, the server prints the wss:// URL, token, certificate fingerprint, data directory, and a one-shot connect URL that can be pasted into a Remote Profile.
Each release also publishes a self-contained bat-server bundle for Linux โ the binary plus a bundled Node runtime, the node-sidecar, and the native Claude SDK, laid out so everything resolves with zero system dependencies (no system Node/Claude/pnpm) and no xvfb (unlike the WebKitGTK AppImage above). The binary is statically linked (musl), so it has no glibc requirement of its own โ the bundle's floor is set by the bundled Node runtime (glibc โฅ 2.28), which runs on enterprise Linux like Oracle Linux 9 / RHEL 9 (glibc 2.34). Published for both x86_64 and aarch64 (the ARM build closes #117); swap the arch in the filenames below. It mirrors the AppImage install-and-go flow:
# tarball + systemd installer (arch = x86_64 or aarch64)
tar -xzf bat-server-linux-aarch64.tar.gz
sudo ./bat-server-linux-aarch64/install.sh # writes a systemd unit + generates a token
# โฆor the single-file AppImage (same flags as the binary)
chmod +x bat-server-aarch64.AppImage
./bat-server-aarch64.AppImage --port=9876 --bind=localhost
The systemd installer stores the token at /etc/bat-server/credentials/token with mode 0600. On systemd 247 or newer it supplies that file through LoadCredential=; older systemd versions use the same owner-restricted file through BAT_TOKEN_FILE. Existing inline-token units and BAT_TOKEN install overrides remain compatible, are migrated to the credential file, and print a warning recommending the safer source.
To rotate the installed service token, replace the credential atomically and restart the service, then update saved Remote Profiles:
sudo sh -c 'umask 077; token=$(mktemp /etc/bat-server/credentials/.token.XXXXXX) && head -c32 /dev/urandom | od -An -tx1 | tr -d " \n" > "$token" && chmod 600 "$token" && mv -f "$token" /etc/bat-server/credentials/token'
sudo systemctl restart bat-server.service
sudo cat /etc/bat-server/credentials/token
Both set IS_SANDBOX=1 so Claude Code's bypassPermissions is allowed when the service runs as root on a single-purpose box. Agent credentials (a logged-in claude/codex or an API key) are still provided once, the same as any host.
Workspaces, settings, and session data are saved to:
| Platform | Path |
|---|---|
| Windows | %APPDATA%/better-agent-terminal/ |
| macOS | ~/Library/Application Support/better-agent-terminal/ |
| Linux | ~/.config/better-agent-terminal/ |
Set the BAT_DEBUG=1 environment variable to enable disk-based debug logging. Logs are written to debug.log in the configuration directory.
Follows semantic versioning: vMAJOR.MINOR.PATCH (e.g., v2.2.27)
Pre-release versions use the -pre.N suffix (e.g., v2.2.28-pre.1). Tags containing -pre are automatically marked as pre-release on GitHub and do not update the Homebrew tap.
Push a tag to trigger builds for all platforms:
git tag v2.2.28
git push origin v2.2.28
MIT License - see LICENSE for details.
TonyQ - @tony1223
Built with Claude Code
.claude/
settings.local.json
skills/
check-sdk-updates/
SKILL.md
.env.local.example
.github/
workflows/
release-tag-dispatch.yml
release.yml
.gitignore
AGENTS.md
assets/
icon-128.png
icon-16.png
icon-256.png
icon-32.png
icon-48.png
icon-512.png
icon-64.png
icon.ico
icon.png
icon.svg
mobile-android-qr.png
mobile-ios-testflight-qr.png
screenshot-claude.png
screenshot-files.png
screenshot-git.png
screenshot-terminal.png
bin/
bat-server.cmd
bat-server.js
bat-server.sh
server-cli.js
build/
entitlements.jit.plist
entitlements.mac.plist
choco/
better-agent-terminal.nuspec
tools/
chocolateyinstall.ps1
chocolateyuninstall.ps1
CLAUDE.md
index.html
install.sh
LICENSE
node-sidecar/
.npmrc
package.json
pnpm-lock.yaml
runtime/
.gitkeep
README.md
scripts/
bench-startup.mjs
inspect-transcript-schema.mjs
spike-debug-pty.mjs
spike-live-claude-cli.mjs
verify-classify-transcripts.mjs
src/
handlers/
claude-auth-login.mjs
claude-auth.mjs
claude-channel.mjs
claude-cli.mjs
claude-history.mjs
claude-mcp.mjs
claude-permission.mjs
claude-readonly.mjs
claude-send.mjs
claude-session.mjs
codex.mjs
worktree.mjs
lib/
claude-effort.mjs
data-paths.mjs
harness-noise.mjs
latency-sample.mjs
live-query.mjs
logger.mjs
models.mjs
path-guard.mjs
plugins.mjs
protocol.mjs
sdk-loader.mjs
skills.mjs
snippet-db.mjs
state.mjs
runtimes/
claude-channel-capabilities.mjs
claude-channel-frames.mjs
claude-channel-hooks.mjs
claude-channel-runtime.mjs
claude-channel-server.mjs
claude-cli-capabilities.mjs
claude-cli-frames.mjs
claude-cli-runtime.mjs
claude-cli-transcript.mjs
server.mjs
tests/
claude-archive-idempotent.test.mjs
claude-auth-login.test.mjs
claude-channel-runtime.test.mjs
claude-cli-runtime.test.mjs
claude-cli.test.mjs
claude-pending-prompt-recovery.test.mjs
claude-send-ack.test.mjs
harness-noise.test.mjs
latency-sample.test.mjs
server.test.mjs
package.json
PLAN.md
plans/
auto-update-plan.md
claude-channel-agent-plan.md
claude-cli-transcript-agent-plan.md
headless-server-decouple.md
mobile-terminal-viewport-mode.md
runtime-setup-install-plan.md
tauri-completion-plan.md
tauri-migration-plan.md
websocket.md
workspace-archive-sort.md
pnpm-lock.yaml
Procfile.tauri
README.md
release-note.md
renderer/
src/
App.tsx
components/
AboutPanel.tsx
ActivityIndicator.tsx
AgentActivityTree.tsx
AgentAskUserQnA.tsx
AgentsPanel.tsx
AgentToolRow.tsx
AskUserQuestion.helpers.ts
ChatMarkdown.tsx
ClaudeAgentPanel.tsx
ClaudeChannelAgentPanel.tsx
ClaudeCliAgentPanel.tsx
ClaudeCliPanel.tsx
CloseConfirmDialog.tsx
CodexAgentPanel.helpers.ts
CodexAgentPanel.tsx
CodexAgentPanel.types.ts
CodexTodoChecklist.tsx
CollapsedBar.tsx
EnvVarEditor.tsx
FileTree.tsx
FolderPicker.tsx
GitHubPanel.tsx
GitPanel.tsx
LatencyStatsPanel.tsx
LoginDialog.tsx
MainPanel.tsx
MarkdownPreview.tsx
MarkdownPreviewPanel.tsx
messageSkip.tsx
NewTerminalQuickPick.tsx
NotificationBell.tsx
PathLinker.tsx
ProfilePanel.tsx
ProfileWindowCloseDialog.tsx
PromptBox.tsx
ReasoningSummary.tsx
RemoteUploadConfirmDialog.tsx
ResizeHandle.tsx
RevealPathMenu.tsx
SettingsPanel.tsx
Sidebar.tsx
SkillsPanel.tsx
SnippetPanel.tsx
TerminalPanel.tsx
TerminalThumbnail.tsx
ThumbnailBar.tsx
UpdateBanner.tsx
UpdateNotification.tsx
WorkerPanel.tsx
WorkspaceEnvDialog.tsx
WorkspaceView.tsx
WorktreeMergedChip.tsx
host-api.ts
i18n.ts
lib/
agent-task-tree.ts
auto-update.ts
runtime-auto-install.ts
locales/
en.json
ja.json
zh-CN.json
zh-TW.json
main.tsx
stores/
notification-store.ts
settings-store.ts
use-store.ts
workspace-store.ts
styles/
base.css
claude-agent.css
claude-channel-agent.css
claude-cli-agent.css
context-menu.css
env-snippets.css
file-browser.css
github-panel.css
layout.css
notifications.css
panels.css
path-linker.css
prompt-box.css
resize.css
settings.css
skills-panel.css
types/
agent-presets.ts
agent-profiles.ts
claude-agent.ts
host-api.d.ts
index.ts
utils/
agent-preset-menu.ts
agent-send-recovery.ts
bounded-lru.ts
chat-markdown.ts
claude-channel-events.ts
claude-model-presets.ts
claude-usage-cache.ts
codex-models.ts
connection-url.ts
error-message.ts
file-data-url.ts
file-path.ts
file-picker-search.ts
input-history-navigation.ts
interrupted-prompt.ts
keyboard-shortcuts.ts
latency-stats.ts
message-dedupe.ts
panel-activation.ts
permission-modes.ts
procfile-parser.ts
pty-input-writer.ts
reasoning-summary.ts
remote-auth.ts
remote-drop-upload.ts
remote-profile-events.ts
runtime-status-message.ts
slash-commands.ts
snippet-command.ts
tauri-native-drop.ts
terminal-key-input.ts
tool-result-cache.ts
use-raf-batched-string.ts
worker-command.ts
workspace-mounts.ts
workspace-move-drag.ts
runtime-catalog.json
scripts/
build-bat-server-bundle.mjs
build-node-sidecar.mjs
build-version.js
check-tauri-preview-readiness.mjs
check-tauri-resources.mjs
fetch-node-runtime.mjs
generate-icons.js
generate-update-manifest.mjs
normalize-release-asset-names.mjs
prepare-tauri-bundle-mode.mjs
prepare-tauri-codex-runtime.mjs
prepare-tauri-sidecar-node-modules.mjs
prune-node-sidecar-modules.mjs
run-tauri-dev-local.mjs
rust-base-cache-key.mjs
setup-self-hosted-windows-runner.ps1
sign-macos-resource-binaries.sh
stage-updater-artifacts.mjs
sync-runtime-catalog.mjs
tauri-build-mode.mjs
tauri-resource-cache-keys.mjs
verify-packaged-claude-binaries.js
verify-release-asset-sizes.js
src-tauri/
build.rs
capabilities/
default.json
Cargo.lock
Cargo.toml
icons/
icon.icns
icon.ico
icon.png
src/
account_store.rs
app_data.rs
app_menu.rs
async_rt.rs
bin/
bat-server.rs
claude_usage.rs
codex_account_store.rs
codex_app_server.rs
codex_auth.rs
commands/
agent.rs
app.rs
claude_channel.rs
claude_cli.rs
claude.rs
clipboard.rs
debug.rs
dialog.rs
fs.rs
fugu.rs
git.rs
github.rs
image.rs
mod.rs
notification.rs
profile.rs
pty.rs
remote.rs
runtime.rs
settings.rs
shell.rs
snippet.rs
tunnel.rs
update.rs
worker_buffer.rs
workspace.rs
worktree.rs
electron_safe_storage.rs
event_hub.rs
host_context.rs
latency_store.rs
lib.rs
linux_wayland.rs
log_file.rs
main.rs
network_addresses.rs
panic_log.rs
path_guard.rs
remote_client.rs
remote_core.rs
remote_server.rs
runtime_catalog.rs
runtime_install.rs
sidecar.rs
subprocess.rs
window_registry.rs
tauri.all-in-one.conf.json
tauri.conf.json
windows/
windows-common-controls.manifest
installer.nsi
nsis-hooks.nsh
test.sh
tests/
agent-preset-debug-gate.test.ts
agent-task-tree.test.ts
ask-user-question.test.ts
bat-server-token-security.test.mjs
build-version-script.test.mjs
chat-markdown-table-repair.test.ts
check-tauri-preview-readiness.test.mjs
check-tauri-resources.test.mjs
claude-message-guards.test.ts
claude-model-groups.test.ts
codex-agent-defaults.test.ts
codex-auto-continue.test.ts
codex-panel-regression.test.ts
console-controller.js
console-test.js
file-picker-search.test.ts
generate-update-manifest.test.mjs
host-api.test.ts
host-claude-coverage.test.ts
host-direct-calls.test.ts
input-history-navigation.test.ts
keyboard-shortcuts.test.ts
latency-stats.test.ts
message-dedupe.test.ts
normalize-release-asset-names.test.mjs
openai-direct-cleanup.test.ts
prepare-tauri-codex-runtime.test.mjs
prune-node-sidecar-modules.test.mjs
pty-input-writer.test.ts
remote-auth-capabilities.test.ts
remote-profile-event-routing.test.ts
renderer-logging.test.ts
runtime-catalog-sync.test.mjs
rust-base-cache-key.test.mjs
slash-commands.test.ts
snippet-command.test.ts
tauri-capabilities.test.mjs
tauri-compile-cache.test.mjs
tauri-dynamic-window-smoke.test.ts
... 17 moreFAQ
better-agent-terminal is a Claude Code plugin with 1 hand-picked skill for development work, indexed on Flowy. Install it with the command on its page. It includes check-sdk-updates. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.