{"adoption": {"forks": 178, "observed_at": "2026-08-28T04:04:53.665063+00:00", "stars": 1496}, "canonical_url": "https://ross.abutalabs.com/products/ishaan1013-shadow", "card": {"archived": false, "artifact_type": "application", "description": "Background coding agent and real-time web interface", "domain": ["artificial-intelligence", "large-language-models", "developer-tools"], "enriched": true, "function": ["agent-framework", "chat-interface", "rag", "developer-tools"], "health_score": 64, "homepage": "https://www.ishaand.com/shadow", "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["ishaan1013/shadow"], "name": "ishaan1013/shadow", "platform": ["self-hosted"], "pushed_at": "2026-03-19T20:29:22+00:00", "repo": "ishaan1013/shadow", "stars": 1496, "tags": ["ai-coding-agent", "autonomous-agent", "github-integration", "code-generation", "pull-requests", "sandboxed-execution", "micro-vm", "kata-containers", "real-time-ui", "nextjs", "websocket", "multi-provider-llm", "background-tasks", "code-search", "turborepo", "ai-agents", "nodejs", "web-server", "kubernetes"], "topics": [], "urls": [], "use_cases": ["run an AI coding agent in the background on my GitHub repo", "self-host an open-source alternative to cloud coding agents", "have an agent open pull requests with AI-authored commits on existing codebases", "execute long-running coding tasks in isolated sandboxed VMs", "chat with an agent in real time while it edits files and runs terminal commands", "automatically document a codebase with an auto-generated wiki", "build a searchable memory of repository-specific knowledge for an LLM agent"], "what_it_is": "Shadow is an open-source background coding agent that autonomously understands, edits, and contributes to existing GitHub codebases, generating branches, commits, and pull requests. It combines a real-time Next.js chat interface (terminal, file explorer, task tracking) with isolated execution environments, from local runs to hardware-isolated Kata QEMU micro-VMs orchestrated on Kubernetes.", "when_to_avoid": ["you only need inline autocomplete or quick edits inside your IDE rather than autonomous background tasks", "you want a lightweight CLI agent without deploying Next.js, PostgreSQL, and optionally Kubernetes", "your code cannot be connected to GitHub or you cannot provide LLM provider API keys", "you need a fully offline agent with local-only models, since it targets hosted providers like Anthropic, OpenAI, and OpenRouter"], "when_to_choose": ["you want a self-hosted, open-source background coding agent rather than a closed cloud service", "your workflow is GitHub-centric and you want automated branch, commit, and PR generation", "you need strong isolation (Kata QEMU micro-VMs, Kubernetes) for untrusted agent execution", "you value full visibility into agent context, tool calls, and the file/terminal workspace"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/ishaan1013-shadow", "repo": "ishaan1013/shadow", "role": "main", "score": 51}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:53.665063+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:33:13.271147+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "17e97b016f31651bda4b9b5e73715f54a0a5b41f27b2576135b7f523f3bf5cdc", "fetched_at": "2026-08-28T04:04:53.665063+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ishaan1013/shadow"}, {"content_hash": "418637bb18fb83b732bc75ed031d0e5da836c28c62cd61ab1096d6dc766e37ed", "fetched_at": "2026-08-29T11:38:51.057086+00:00", "kind": "homepage", "missing": false, "url": "https://www.ishaand.com/shadow"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:53.665063+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:33:13.271147+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "17e97b016f31651bda4b9b5e73715f54a0a5b41f27b2576135b7f523f3bf5cdc", "fetched_at": "2026-08-28T04:04:53.665063+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ishaan1013/shadow"}, {"content_hash": "418637bb18fb83b732bc75ed031d0e5da836c28c62cd61ab1096d6dc766e37ed", "fetched_at": "2026-08-29T11:38:51.057086+00:00", "kind": "homepage", "missing": false, "url": "https://www.ishaand.com/shadow"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:33:13.271147+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "17e97b016f31651bda4b9b5e73715f54a0a5b41f27b2576135b7f523f3bf5cdc", "fetched_at": "2026-08-28T04:04:53.665063+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ishaan1013/shadow"}, {"content_hash": "418637bb18fb83b732bc75ed031d0e5da836c28c62cd61ab1096d6dc766e37ed", "fetched_at": "2026-08-29T11:38:51.057086+00:00", "kind": "homepage", "missing": false, "url": "https://www.ishaand.com/shadow"}], "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:04:53.665063+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:53.665063+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:53.665063+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:33:13.271147+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "17e97b016f31651bda4b9b5e73715f54a0a5b41f27b2576135b7f523f3bf5cdc", "fetched_at": "2026-08-28T04:04:53.665063+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ishaan1013/shadow"}, {"content_hash": "418637bb18fb83b732bc75ed031d0e5da836c28c62cd61ab1096d6dc766e37ed", "fetched_at": "2026-08-29T11:38:51.057086+00:00", "kind": "homepage", "missing": false, "url": "https://www.ishaand.com/shadow"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:53.665063+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:53.665063+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:33:13.271147+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "17e97b016f31651bda4b9b5e73715f54a0a5b41f27b2576135b7f523f3bf5cdc", "fetched_at": "2026-08-28T04:04:53.665063+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ishaan1013/shadow"}, {"content_hash": "418637bb18fb83b732bc75ed031d0e5da836c28c62cd61ab1096d6dc766e37ed", "fetched_at": "2026-08-29T11:38:51.057086+00:00", "kind": "homepage", "missing": false, "url": "https://www.ishaand.com/shadow"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:53.665063+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:53.665063+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:53.665063+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:33:13.271147+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "17e97b016f31651bda4b9b5e73715f54a0a5b41f27b2576135b7f523f3bf5cdc", "fetched_at": "2026-08-28T04:04:53.665063+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ishaan1013/shadow"}, {"content_hash": "418637bb18fb83b732bc75ed031d0e5da836c28c62cd61ab1096d6dc766e37ed", "fetched_at": "2026-08-29T11:38:51.057086+00:00", "kind": "homepage", "missing": false, "url": "https://www.ishaand.com/shadow"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:53.665063+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:53.665063+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:33:13.271147+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "17e97b016f31651bda4b9b5e73715f54a0a5b41f27b2576135b7f523f3bf5cdc", "fetched_at": "2026-08-28T04:04:53.665063+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ishaan1013/shadow"}, {"content_hash": "418637bb18fb83b732bc75ed031d0e5da836c28c62cd61ab1096d6dc766e37ed", "fetched_at": "2026-08-29T11:38:51.057086+00:00", "kind": "homepage", "missing": false, "url": "https://www.ishaand.com/shadow"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:33:13.271147+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "17e97b016f31651bda4b9b5e73715f54a0a5b41f27b2576135b7f523f3bf5cdc", "fetched_at": "2026-08-28T04:04:53.665063+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ishaan1013/shadow"}, {"content_hash": "418637bb18fb83b732bc75ed031d0e5da836c28c62cd61ab1096d6dc766e37ed", "fetched_at": "2026-08-29T11:38:51.057086+00:00", "kind": "homepage", "missing": false, "url": "https://www.ishaand.com/shadow"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:33:13.271147+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "17e97b016f31651bda4b9b5e73715f54a0a5b41f27b2576135b7f523f3bf5cdc", "fetched_at": "2026-08-28T04:04:53.665063+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ishaan1013/shadow"}, {"content_hash": "418637bb18fb83b732bc75ed031d0e5da836c28c62cd61ab1096d6dc766e37ed", "fetched_at": "2026-08-29T11:38:51.057086+00:00", "kind": "homepage", "missing": false, "url": "https://www.ishaand.com/shadow"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:33:13.271147+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "17e97b016f31651bda4b9b5e73715f54a0a5b41f27b2576135b7f523f3bf5cdc", "fetched_at": "2026-08-28T04:04:53.665063+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ishaan1013/shadow"}, {"content_hash": "418637bb18fb83b732bc75ed031d0e5da836c28c62cd61ab1096d6dc766e37ed", "fetched_at": "2026-08-29T11:38:51.057086+00:00", "kind": "homepage", "missing": false, "url": "https://www.ishaand.com/shadow"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 73, "longevity": 29, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 417, "days_push": 167, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 51, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}