Skip to content

feat(tui): installed-only agents and per-agent settings tabs - #10

Merged
duyet merged 1 commit into
mainfrom
feat/agent-tabs-install
Aug 24, 2026
Merged

feat(tui): installed-only agents and per-agent settings tabs#10
duyet merged 1 commit into
mainfrom
feat/agent-tabs-install

Conversation

@duyet

@duyet duyet commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Why

The launcher listed every coding agent even when none were on PATH. Config mixed Claude aliases with global settings.

What

  • Launch rows = agents detected on PATH (ANYROUTER_*_PATH or ANYR_AGENTS override for tests)
  • Empty state: install an agent… / none detected — opens an install picker and runs the documented installer
  • Config tabs: [general] claude codex grok opencode pi pool (tab / ] next, [ previous)
  • Each agent tab: status, command path, install, env mapping (base URL / auth / model)
  • Claude tab keeps haiku/sonnet/opus/fable + gateway discovery
  • Install persists the resolved binary onto tools.<id>.command

Test

  • cargo test --all-targets
  • wasm check
  • --dump-tui with ANYR_AGENTS=claude,codex and ANYR_AGENTS=none

Launcher launch rows are only agents on PATH (or ANYR_AGENTS).
If none are detected, one empty-state row opens the install
dialog. Config is tabbed: general plus a tab per coding agent
with status, command, install, and env mapping. Claude keeps
haiku/sonnet/opus/fable on its tab. Tab / [ ] switch agents.

Co-authored-by: Duyet Le <me@duyet.net>
Co-authored-by: duyetbot <bot@duyet.net>
@github-actions

Copy link
Copy Markdown
Contributor

anyr size and startup

Startup is wall time for a cold anyr --version / anyr --help (median of 21 runs). Size is the stripped release binary, or the .wasm for the browser demo.

Size budget: anyr-linux-x86_64 must stay ≤ 4.0 MiB (4194304 bytes) stripped.

Asset Kind Size --version median --help median
anyr-darwin-arm64 native 2.3 MiB 2.81 ms 2.46 ms
anyr-linux-arm64 native 2.3 MiB 0.69 ms 0.7 ms
anyr-linux-x86_64 native 2.6 MiB 0.94 ms 0.94 ms
anyr-windows-x86_64.exe native 2.2 MiB 9.5 ms 9.86 ms
anyr.wasm wasm 170.8 KiB

Budget check: ok

raw timings
[
  {
    "asset": "anyr-darwin-arm64",
    "kind": "native",
    "path": "/Users/runner/work/cli/cli/anyr-darwin-arm64",
    "bytes": 2461608,
    "size": "2.3 MiB",
    "version": "0.1.10 (built 2026-08-24 11:22:32)",
    "target": "aarch64-apple-darwin",
    "os": "macos-latest",
    "startup_version": {
      "n": 21,
      "min_ms": 2.65,
      "median_ms": 2.81,
      "p95_ms": 5.21,
      "mean_ms": 3.15
    },
    "startup_help": {
      "n": 21,
      "min_ms": 2.31,
      "median_ms": 2.46,
      "p95_ms": 2.7,
      "mean_ms": 2.53
    }
  },
  {
    "asset": "anyr-linux-arm64",
    "kind": "native",
    "path": "/home/runner/work/cli/cli/anyr-linux-arm64",
    "bytes": 2429920,
    "size": "2.3 MiB",
    "version": "0.1.10 (built 2026-08-24 11:27:27)",
    "target": "aarch64-unknown-linux-gnu",
    "os": "ubuntu-24.04-arm",
    "startup_version": {
      "n": 21,
      "min_ms": 0.65,
      "median_ms": 0.69,
      "p95_ms": 0.77,
      "mean_ms": 0.7
    },
    "startup_help": {
      "n": 21,
      "min_ms": 0.65,
      "median_ms": 0.7,
      "p95_ms": 0.76,
      "mean_ms": 0.71
    }
  },
  {
    "asset": "anyr-linux-x86_64",
    "kind": "native",
    "path": "/home/runner/work/cli/cli/anyr-linux-x86_64",
    "bytes": 2726408,
    "size": "2.6 MiB",
    "version": "0.1.10 (built 2026-08-24 11:22:36)",
    "target": "x86_64-unknown-linux-gnu",
    "os": "ubuntu-latest",
    "startup_version": {
      "n": 21,
      "min_ms": 0.91,
      "median_ms": 0.94,
      "p95_ms": 1.04,
      "mean_ms": 0.96
    },
    "startup_help": {
      "n": 21,
      "min_ms": 0.89,
      "median_ms": 0.94,
      "p95_ms": 0.98,
      "mean_ms": 0.94
    }
  },
  {
    "asset": "anyr-windows-x86_64.exe",
    "kind": "native",
    "path": "D:\\a\\cli\\cli\\anyr-windows-x86_64.exe",
    "bytes": 2257408,
    "size": "2.2 MiB",
    "version": "0.1.10 (built 2026-08-24T11:23:34Z)",
    "target": "x86_64-pc-windows-msvc",
    "os": "windows-latest",
    "startup_version": {
      "n": 21,
      "min_ms": 8.98,
      "median_ms": 9.5,
      "p95_ms": 9.85,
      "mean_ms": 9.53
    },
    "startup_help": {
      "n": 21,
      "min_ms": 9.43,
      "median_ms": 9.86,
      "p95_ms": 10.08,
      "mean_ms": 9.82
    }
  },
  {
    "asset": "anyr.wasm",
    "kind": "wasm",
    "path": "/home/runner/work/cli/cli/target/wasm-pkg/anyr_cli_bg.wasm",
    "bytes": 174926,
    "size": "170.8 KiB",
    "version": "wasm",
    "target": "wasm32-unknown-unknown",
    "os": ""
  }
]

@duyet
duyet merged commit 8c7554c into main Aug 24, 2026
8 checks passed
@duyet
duyet deleted the feat/agent-tabs-install branch August 24, 2026 11:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant