|
1 | 1 | # AgentSwitch |
2 | 2 |
|
3 | | -Native GUI for managing AI coding-agent configuration across providers. Toggle skills, hooks, rules, and MCP servers without hand-editing provider files. |
| 3 | +Native desktop GUI for managing AI coding-agent configuration across providers. Toggle skills, hooks, rules, and MCP servers — browse, diff, and manage chat histories — without hand-editing provider files. |
4 | 4 |
|
5 | 5 | ## Features |
6 | 6 |
|
7 | | -- Per-hook toggle with reversible disable behavior. |
8 | | -- Bulk toggle (Enable All / Disable All) for filtered items. |
9 | | -- Project/global scope switching. |
10 | | -- Diff Workbench for project vs global config comparison. |
11 | | -- Hook Cockpit for static hook inventory, conflicts, and risk warnings. |
12 | | -- Inline editor for instruction files and rules. |
13 | | -- JSON backups before config mutation. |
14 | | -- Windows, Linux, and macOS builds. |
| 7 | +- **Item Toggle** — per-item enable/disable with reversible rename or JSON mutation. |
| 8 | +- **Bulk Toggle** — Enable All / Disable All for filtered item categories. |
| 9 | +- **Scope Switching** — project-level vs global configuration, with workspace browser. |
| 10 | +- **Diff Workbench** — compare project and global configs with stable, secret-safe fingerprints. Detects duplicates, missing targets, and scope conflicts. |
| 11 | +- **Hook Cockpit** — static hook inventory showing event, matcher, handler, blocking risk, timeout, duplicates, and project/global overlaps. |
| 12 | +- **Chat Manager** — unified chat history browser across Claude Code, Codex CLI, Gemini CLI, and Kiro. Search, export (single JSON or multi-chat ZIP), soft-delete with Trash, and import archived sessions. |
| 13 | +- **Inline Editor** — edit instruction files, rules, and steering docs without leaving the app. |
| 14 | +- **JSON Backups** — automatic `.bak` creation before any config mutation. |
| 15 | +- **Cross-platform** — Windows, Linux, and macOS builds. |
15 | 16 |
|
16 | 17 | ## Supported Providers |
17 | 18 |
|
18 | 19 | | Provider | Instruction File | Skills | Hooks | MCP | Other | |
19 | 20 | |---|---|---|---|---|---| |
20 | 21 | | Claude Code | `CLAUDE.md` | `.claude/skills/` | `settings.json` | `settings.json` | Rules | |
21 | | -| Codex CLI | `AGENTS.md` | `.codex/skills/`, `.agents/skills/` | `config.toml`, `hooks.json` | `config.toml`, `.mcp.json` | - | |
| 22 | +| Codex CLI | `AGENTS.md` | `.codex/skills/`, `.agents/skills/` | `config.toml`, `hooks.json` | `config.toml`, `.mcp.json` | — | |
22 | 23 | | Gemini CLI | `GEMINI.md`, `AGENTS.md` | `.gemini/skills/` | `settings.json` | `settings.json` | Rules | |
23 | | -| Kiro | - | - | Agent JSON | `settings/mcp.json` | Steering, Specs | |
| 24 | +| Kiro | — | — | Agent JSON | `settings/mcp.json` | Steering, Specs, Agents | |
24 | 25 | | OpenCode | `AGENTS.md` | `.opencode/skills/` | Plugins | `opencode.json` | Agents | |
25 | 26 |
|
26 | 27 | ## Install |
27 | 28 |
|
28 | | -Download the matching binary from [Releases](https://github.com/AshishRogannagar/AgentSwitch/releases): |
| 29 | +Download the matching binary from [Releases](https://github.com/RoyCoding8/AgentSwitch/releases): |
29 | 30 |
|
30 | | -- `agent-switch-windows-x86_64.exe` |
31 | | -- `agent-switch-linux-x86_64` |
32 | | -- `agent-switch-macos-x86_64` |
33 | | -- `agent-switch-macos-aarch64` |
| 31 | +| Platform | Asset | |
| 32 | +|---|---| |
| 33 | +| Windows x86-64 | `agent-switch-windows-x86_64.exe` | |
| 34 | +| Linux x86-64 | `agent-switch-linux-x86_64` | |
| 35 | +| macOS Intel | `agent-switch-macos-x86_64` | |
| 36 | +| macOS Apple Silicon | `agent-switch-macos-aarch64` | |
34 | 37 |
|
35 | | -## Build |
| 38 | +## Build from Source |
36 | 39 |
|
37 | | -Requires the [Rust toolchain](https://rustup.rs/). |
| 40 | +Requires the [Rust toolchain](https://rustup.rs/) (1.75+). |
38 | 41 |
|
39 | 42 | ```bash |
40 | | -git clone https://github.com/AshishRogannagar/AgentSwitch.git |
| 43 | +git clone https://github.com/RoyCoding8/AgentSwitch.git |
41 | 44 | cd AgentSwitch |
42 | 45 | cargo build --release |
43 | 46 | ``` |
44 | 47 |
|
45 | | -Output: |
| 48 | +Output binary: |
46 | 49 |
|
47 | | -- Windows: `target/release/agent-switch.exe` |
48 | | -- Linux/macOS: `target/release/agent-switch` |
| 50 | +- **Windows:** `target/release/agent-switch.exe` |
| 51 | +- **Linux / macOS:** `target/release/agent-switch` |
49 | 52 |
|
50 | | -Linux builds may need native GUI dependencies: |
| 53 | +### Linux Dependencies |
51 | 54 |
|
52 | 55 | ```bash |
53 | 56 | sudo apt-get update |
54 | | -sudo apt-get install -y pkg-config libgtk-3-dev libx11-dev libxi-dev libxkbcommon-dev libwayland-dev libgl1-mesa-dev libasound2-dev |
| 57 | +sudo apt-get install -y \ |
| 58 | + pkg-config libgtk-3-dev libx11-dev libxi-dev \ |
| 59 | + libxkbcommon-dev libwayland-dev libgl1-mesa-dev libasound2-dev |
55 | 60 | ``` |
56 | 61 |
|
57 | 62 | ## Usage |
58 | 63 |
|
59 | | -Launch AgentSwitch from the workspace you want to inspect, or use Browse to pick a workspace. |
| 64 | +Launch AgentSwitch from the workspace you want to inspect, or use **Browse** to pick a workspace at runtime. |
60 | 65 |
|
61 | | -- `Items`: toggle discovered provider config items. |
62 | | -- `Hooks`: inspect hook order, scope, matcher, handler, blocking risk, duplicates, and project/global overlaps. |
63 | | -- `Diff`: compare project and global config with stable, secret-safe fingerprints. |
| 66 | +| Tab | Purpose | |
| 67 | +|---|---| |
| 68 | +| **Items** | Toggle discovered provider config items (skills, hooks, rules, MCP servers). | |
| 69 | +| **Hooks** | Inspect hook execution order, scope, matcher, handler type, blocking risk, duplicates, and project/global overlaps. | |
| 70 | +| **Diff** | Compare project vs global config with stable, secret-redacted fingerprints. | |
| 71 | +| **Chats** | Browse, search, export, import, and trash chat sessions across all providers. | |
64 | 72 |
|
65 | | -Diff Workbench and Hook Cockpit are read-only. Toggle actions remain in `Items`. |
| 73 | +> Diff Workbench and Hook Cockpit are read-only diagnostics. Toggle actions remain in **Items**. |
66 | 74 |
|
67 | | -## Releases |
68 | | - |
69 | | -CI runs on Windows, Linux, and macOS for pushes, pull requests, and manual dispatch. |
70 | | - |
71 | | -Manual release workflow: |
72 | | - |
73 | | -1. Open GitHub Actions. |
74 | | -2. Run `Release`. |
75 | | -3. Enter the version without `v`, for example `1.0.0`. |
76 | | -4. The workflow builds release binaries for Windows, Linux, macOS Intel, and macOS Apple Silicon. |
77 | | -5. The workflow publishes all artifacts plus `SHA256SUMS.txt` to GitHub Releases. |
78 | 75 |
|
79 | 76 | ## Architecture |
80 | 77 |
|
81 | 78 | ```text |
82 | 79 | src/ |
83 | 80 | main.rs eframe entry point |
84 | | - app.rs state and UI orchestration |
85 | | - types.rs shared item/provider types |
| 81 | + app.rs state machine and UI orchestration |
| 82 | + types.rs shared item, provider, and scope types |
86 | 83 | scanner.rs provider filesystem discovery |
87 | | - toggler.rs rename and JSON mutation logic |
88 | | - diagnostics.rs project/global diff workbench logic |
89 | | - hook_diag.rs static hook cockpit logic |
90 | | - editor.rs markdown editor state |
91 | | - ui/ egui panels and theme |
| 84 | + toggler.rs rename and JSON/TOML mutation logic |
| 85 | + diagnostics.rs project/global diff workbench engine |
| 86 | + hook_diag.rs static hook cockpit engine |
| 87 | + chat.rs chat history scanner, archive, export/import, trash |
| 88 | + editor.rs inline markdown editor state |
| 89 | + ui/ |
| 90 | + mod.rs module declarations |
| 91 | + theme.rs dark theme colors, fonts, and style |
| 92 | + sidebar.rs provider list and scope tabs |
| 93 | + item_list.rs toggle list with filter tabs |
| 94 | + diff_panel.rs diff workbench UI |
| 95 | + hooks_panel.rs hook cockpit UI |
| 96 | + chat_panel.rs chat manager UI |
| 97 | + editor_panel.rs inline editor UI |
| 98 | + status_bar.rs bottom status summary |
92 | 99 | ``` |
93 | 100 |
|
94 | 101 | ## License |
|
0 commit comments