-
Notifications
You must be signed in to change notification settings - Fork 3
feat: add Agents tab for browsing AI coding assistants #3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Design for a second TUI tab to browse AI coding assistants with: - gh-aw agent for weekly data scraping from artificialanalysis.ai - GitHub API integration for releases/changelogs (cached, lazy-loaded) - CLI detection for installed tools with version comparison - User config persistence at ~/.config/models/config.toml - Add/remove picker for tracking tools Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Detailed step-by-step plan covering: - Phase 1: Core infrastructure (deps, data structures, config) - Phase 2: CLI detection - Phase 3: TUI tab system - Phase 4: Agents tab implementation - Phase 5: Polish and gh-aw workflow Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add imports for load_agents and Config - Load agents file and config at startup - Pass agents_file and config to App::new - Simplify run_app function Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace placeholder functions with full agents tab implementation: - Categories panel showing All, Installed, CLI Tools, IDEs, Open Source - Agent list with columns for name, installed version, latest version, status - Detail panel showing agent name, repo, versions, pricing, providers, categories - Proper focus highlighting for panels (cyan when focused, gray otherwise) - Header row with underline styling in agent list - Selection state management with offset for header row Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add comprehensive event handling for the Agents tab: - Add new Message variants for agent navigation and actions - Implement tab-aware key handling (global vs tab-specific keys) - Support j/k navigation for categories and agents - Add h/l/Tab focus switching between panels - Add filter toggles (1/2/3 for installed/cli/open-source) - Add actions: o=open docs, r=open repo, c=copy name Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add GitHubClient that fetches repository stars, issues, license, and release info using the `gh api` CLI. Includes 1-hour cache TTL to minimize API calls. - GitHubClient with fetch/fetch_fresh methods - RepoResponse and ReleaseResponse structs for API parsing - format_stars() for human-readable star counts (e.g., "12.3k") - format_relative_time() to extract date from ISO timestamps - Unit tests for formatting functions Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add GitHubClient integration to the TUI to fetch live GitHub data for agents: - Add refresh_github_data() method to AgentsApp for bulk fetching - Add refresh_agent_github() method for single agent refresh - Add github_client field to App struct - Call refresh_github_data() on startup in mod.rs Errors are handled gracefully - GitHub data is optional and failures don't crash the app. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add state fields and methods for the agent add/remove picker modal: - show_picker, picker_selected, picker_changes fields - open_picker, close_picker, picker_toggle_current methods - picker_next, picker_prev, picker_save navigation methods - Message variants: OpenPicker, ClosePicker, PickerNext, PickerPrev, PickerToggle, PickerSave Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add keybindings to open and interact with the picker modal: - 'a' to open picker when on Agents tab - j/k or arrows to navigate picker items - space to toggle selection - enter to save and close - esc to cancel Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Draw a centered popup modal for adding/removing tracked agents. The modal shows checkboxes with agent name (bold), category (gray), and installed status. Includes title and keybinding hints in footer. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Wire up picker message handlers to call the appropriate AgentsApp methods. Add config field to App struct to enable picker_save functionality. Remove #[allow(dead_code)] attributes from picker methods and fields. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add 'u' key in Agents tab to copy the update command for the current agent to clipboard (e.g., "npm update -g @anthropic-ai/claude-code"). Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Add a second tab to the TUI for browsing AI coding assistants (Claude Code, Cursor, aider, Windsurf, Goose, Zed).
Features
Core Infrastructure
data/agents.jsonwith metadata (pricing, categories, providers, platform support)~/.config/models/config.tomlfor tracking preferencesGitHub Integration
gh api: stars, latest versions, changelogs, release datesTab-based UI
[/]navigation between Models and Agents tabsPicker Modal
akey opens add/remove pickerActions
oopen docsropen GitHub repoccopy nameucopy update command1/2/3keysAutomation
New Dependencies
semver- Version comparisondirs- Cross-platform config pathstoml- Config file parsingTest Plan
cargo test- 8 tests passingcargo clippy -- -D warnings- No warningscargo run -- tui, switch tabs, test GitHub data, picker, filters🤖 Generated with Claude Code