{"adoption": {"forks": 736, "observed_at": "2026-08-28T04:10:41.863669+00:00", "stars": 10396}, "canonical_url": "https://ross.abutalabs.com/products/aichat", "card": {"archived": false, "artifact_type": "cli-tool", "description": "All-in-one LLM CLI tool featuring Shell Assistant, Chat-REPL, RAG, AI Tools & Agents, with access to OpenAI, Claude, Gemini, Ollama, Groq, and more.", "domain": ["large-language-models", "developer-tools", "chatbots"], "enriched": true, "function": ["cli", "chatbot", "rag", "agent-framework", "llm-inference", "prompt-engineering", "chat-interface"], "health_score": 74, "homepage": null, "language": "Rust", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["sigoden/aichat"], "name": "sigoden/aichat", "platform": ["cli", "cross-platform", "windows", "rust"], "pushed_at": "2026-02-23T11:16:42+00:00", "repo": "sigoden/aichat", "stars": 10396, "tags": ["llm-cli", "shell-assistant", "chat-repl", "multi-provider", "function-calling", "ai-tools", "openai-compatible", "role-playing", "ai-agents", "command-line", "retrieval-augmented-generation", "linux", "macos"], "topics": ["claude", "gemini", "ollama", "openai", "function-calling", "cli", "llm", "rag", "ai", "rust", "ai-agents", "chatbot", "shell", "webui"], "urls": [], "use_cases": ["chat with llms from the terminal", "generate shell commands from natural language", "use multiple llm providers with one cli tool", "chat with local documents using rag", "interactive chat repl with autocomplete", "build ai agents with function calling", "pipe files or stdin into an llm prompt"], "what_it_is": "AIChat is an all-in-one command-line LLM client written in Rust that connects to 20+ providers including OpenAI, Claude, Gemini, and Ollama. It offers CMD and REPL chat modes, a shell assistant that converts natural language into shell commands, RAG, AI tools, and agents.", "when_to_avoid": ["you need a full graphical chat application", "you want to fine-tune or train models locally", "you need a web-first chat UI as the primary interface"], "when_to_choose": ["you want a single fast CLI to access many LLM providers", "you need shell command generation tuned to your OS and shell", "you want RAG, agents, and function calling without writing code", "you prefer a lightweight Rust binary over Python-based LLM tools"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/aichat", "repo": "sigoden/aichat", "role": "main", "score": 63}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:41.863669+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:19:04.381709+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c2beb8c1ce707718a3cf60ecca8a97dca8c73d0331799268882b277db6aec764", "fetched_at": "2026-08-28T04:10:41.863669+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sigoden/aichat"}, {"content_hash": "7154b318248582d14765b2fd1c1713558c651e9b9d710a3a14f24b8755e950c9", "fetched_at": "2026-08-29T08:18:12.232396+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/aichat"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:41.863669+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:19:04.381709+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c2beb8c1ce707718a3cf60ecca8a97dca8c73d0331799268882b277db6aec764", "fetched_at": "2026-08-28T04:10:41.863669+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sigoden/aichat"}, {"content_hash": "7154b318248582d14765b2fd1c1713558c651e9b9d710a3a14f24b8755e950c9", "fetched_at": "2026-08-29T08:18:12.232396+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/aichat"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:19:04.381709+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c2beb8c1ce707718a3cf60ecca8a97dca8c73d0331799268882b277db6aec764", "fetched_at": "2026-08-28T04:10:41.863669+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sigoden/aichat"}, {"content_hash": "7154b318248582d14765b2fd1c1713558c651e9b9d710a3a14f24b8755e950c9", "fetched_at": "2026-08-29T08:18:12.232396+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/aichat"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:10:41.863669+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:41.863669+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:41.863669+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:19:04.381709+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c2beb8c1ce707718a3cf60ecca8a97dca8c73d0331799268882b277db6aec764", "fetched_at": "2026-08-28T04:10:41.863669+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sigoden/aichat"}, {"content_hash": "7154b318248582d14765b2fd1c1713558c651e9b9d710a3a14f24b8755e950c9", "fetched_at": "2026-08-29T08:18:12.232396+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/aichat"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:41.863669+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:41.863669+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:19:04.381709+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c2beb8c1ce707718a3cf60ecca8a97dca8c73d0331799268882b277db6aec764", "fetched_at": "2026-08-28T04:10:41.863669+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sigoden/aichat"}, {"content_hash": "7154b318248582d14765b2fd1c1713558c651e9b9d710a3a14f24b8755e950c9", "fetched_at": "2026-08-29T08:18:12.232396+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/aichat"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:41.863669+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:41.863669+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:41.863669+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:19:04.381709+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c2beb8c1ce707718a3cf60ecca8a97dca8c73d0331799268882b277db6aec764", "fetched_at": "2026-08-28T04:10:41.863669+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sigoden/aichat"}, {"content_hash": "7154b318248582d14765b2fd1c1713558c651e9b9d710a3a14f24b8755e950c9", "fetched_at": "2026-08-29T08:18:12.232396+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/aichat"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:41.863669+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:41.863669+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:19:04.381709+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c2beb8c1ce707718a3cf60ecca8a97dca8c73d0331799268882b277db6aec764", "fetched_at": "2026-08-28T04:10:41.863669+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sigoden/aichat"}, {"content_hash": "7154b318248582d14765b2fd1c1713558c651e9b9d710a3a14f24b8755e950c9", "fetched_at": "2026-08-29T08:18:12.232396+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/aichat"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:19:04.381709+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c2beb8c1ce707718a3cf60ecca8a97dca8c73d0331799268882b277db6aec764", "fetched_at": "2026-08-28T04:10:41.863669+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sigoden/aichat"}, {"content_hash": "7154b318248582d14765b2fd1c1713558c651e9b9d710a3a14f24b8755e950c9", "fetched_at": "2026-08-29T08:18:12.232396+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/aichat"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:19:04.381709+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c2beb8c1ce707718a3cf60ecca8a97dca8c73d0331799268882b277db6aec764", "fetched_at": "2026-08-28T04:10:41.863669+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sigoden/aichat"}, {"content_hash": "7154b318248582d14765b2fd1c1713558c651e9b9d710a3a14f24b8755e950c9", "fetched_at": "2026-08-29T08:18:12.232396+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/aichat"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:19:04.381709+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c2beb8c1ce707718a3cf60ecca8a97dca8c73d0331799268882b277db6aec764", "fetched_at": "2026-08-28T04:10:41.863669+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sigoden/aichat"}, {"content_hash": "7154b318248582d14765b2fd1c1713558c651e9b9d710a3a14f24b8755e950c9", "fetched_at": "2026-08-29T08:18:12.232396+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/aichat"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 69, "longevity": 91, "rhythm": 40}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1280, "days_push": 191, "days_rel": 423, "gap_med": 24.5, "n_releases_24m": 11}, "score": 63, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}