{"adoption": {"forks": 87, "observed_at": "2026-09-03T02:15:10.271455+00:00", "stars": 1294}, "canonical_url": "https://ross.abutalabs.com/products/ai-toolbox", "card": {"archived": false, "artifact_type": "application", "description": "Personal AI Toolbox", "domain": ["developer-tools", "artificial-intelligence", "large-language-models", "cross-platform"], "enriched": true, "function": ["configuration-management", "developer-tools", "mcp", "gui", "backup", "proxy", "llm-inference"], "health_score": 100, "homepage": null, "language": "Rust", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["coulsontl/ai-toolbox"], "name": "coulsontl/ai-toolbox", "platform": ["windows", "rust"], "pushed_at": "2026-09-03T01:42:36+00:00", "repo": "coulsontl/ai-toolbox", "stars": 1294, "tags": ["ai-coding-assistants", "claude-code", "codex", "gemini-cli", "opencode", "provider-switching", "system-tray", "wsl-sync", "ssh-sync", "webdav-backup", "ai-agents", "macos", "linux", "desktop", "tauri"], "topics": [], "urls": [], "use_cases": ["switch claude code between official subscription and custom api providers", "manage mcp server configs across multiple ai cli tools", "manage codex cli model mappings and prompts with a gui", "sync ai assistant configs from windows to wsl", "back up ai tool configurations to webdav", "browse and export claude code and codex session history", "run a local proxy gateway with failover for ai coding clis", "quickly toggle ai providers and models from the system tray"], "what_it_is": "A cross-platform desktop application (built with Tauri and Rust) for managing configurations of AI coding assistant CLIs such as Claude Code, Codex, Gemini CLI, OpenCode, OpenClaw, and Pi. It provides visual provider/model switching, MCP server and Skills management, a local proxy gateway, session browsing, and config sync to WSL or remote SSH hosts.", "when_to_avoid": ["you only use one AI CLI and are comfortable editing its config directly", "you need a headless or CLI-only tool rather than a desktop GUI", "you want a tool for chatting with AI models rather than managing assistant configurations"], "when_to_choose": ["you use multiple AI coding assistant CLIs and juggle their config files manually", "you frequently switch between official subscriptions and third-party API providers", "you need centralized MCP server and Skills management across tools", "you develop on Windows but run AI CLIs inside WSL or on remote SSH hosts"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/ai-toolbox", "repo": "coulsontl/ai-toolbox", "role": "main", "score": 79}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-09-03T02:15:10.271455+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:17:07.142409+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ff6649a7069ab6b357a280c91647b0882b0b15d8010b98302f0d8923608799dd", "fetched_at": "2026-09-03T02:15:10.271455+00:00", "kind": "readme", "missing": false, "url": "https://github.com/coulsontl/ai-toolbox"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-09-03T02:15:10.271455+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:17:07.142409+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ff6649a7069ab6b357a280c91647b0882b0b15d8010b98302f0d8923608799dd", "fetched_at": "2026-09-03T02:15:10.271455+00:00", "kind": "readme", "missing": false, "url": "https://github.com/coulsontl/ai-toolbox"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:17:07.142409+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ff6649a7069ab6b357a280c91647b0882b0b15d8010b98302f0d8923608799dd", "fetched_at": "2026-09-03T02:15:10.271455+00:00", "kind": "readme", "missing": false, "url": "https://github.com/coulsontl/ai-toolbox"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-09-03T02:15:10.271455+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-09-03T02:15:10.271455+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-09-03T02:15:10.271455+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:17:07.142409+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ff6649a7069ab6b357a280c91647b0882b0b15d8010b98302f0d8923608799dd", "fetched_at": "2026-09-03T02:15:10.271455+00:00", "kind": "readme", "missing": false, "url": "https://github.com/coulsontl/ai-toolbox"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-09-03T02:15:10.271455+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-09-03T02:15:10.271455+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:17:07.142409+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ff6649a7069ab6b357a280c91647b0882b0b15d8010b98302f0d8923608799dd", "fetched_at": "2026-09-03T02:15:10.271455+00:00", "kind": "readme", "missing": false, "url": "https://github.com/coulsontl/ai-toolbox"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-09-03T02:15:10.271455+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-09-03T02:15:10.271455+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-09-03T02:15:10.271455+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:17:07.142409+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ff6649a7069ab6b357a280c91647b0882b0b15d8010b98302f0d8923608799dd", "fetched_at": "2026-09-03T02:15:10.271455+00:00", "kind": "readme", "missing": false, "url": "https://github.com/coulsontl/ai-toolbox"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-09-03T02:15:10.271455+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-09-03T02:15:10.271455+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:17:07.142409+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ff6649a7069ab6b357a280c91647b0882b0b15d8010b98302f0d8923608799dd", "fetched_at": "2026-09-03T02:15:10.271455+00:00", "kind": "readme", "missing": false, "url": "https://github.com/coulsontl/ai-toolbox"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:17:07.142409+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ff6649a7069ab6b357a280c91647b0882b0b15d8010b98302f0d8923608799dd", "fetched_at": "2026-09-03T02:15:10.271455+00:00", "kind": "readme", "missing": false, "url": "https://github.com/coulsontl/ai-toolbox"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:17:07.142409+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ff6649a7069ab6b357a280c91647b0882b0b15d8010b98302f0d8923608799dd", "fetched_at": "2026-09-03T02:15:10.271455+00:00", "kind": "readme", "missing": false, "url": "https://github.com/coulsontl/ai-toolbox"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:17:07.142409+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ff6649a7069ab6b357a280c91647b0882b0b15d8010b98302f0d8923608799dd", "fetched_at": "2026-09-03T02:15:10.271455+00:00", "kind": "readme", "missing": false, "url": "https://github.com/coulsontl/ai-toolbox"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 100, "longevity": 17, "rhythm": 88}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 243, "days_push": 0, "days_rel": 1, "gap_med": 1, "n_releases_24m": 102}, "score": 79, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 3, "stale_scrape": false}}