{"adoption": {"forks": 194, "observed_at": "2026-08-28T04:04:47.406509+00:00", "stars": 1461}, "canonical_url": "https://ross.abutalabs.com/products/ghostwright-phantom", "card": {"archived": false, "artifact_type": "application", "description": "An AI co-worker with its own computer. Self-evolving, persistent memory, MCP server, secure credential collection, email identity. Built on the Claude Agent SDK.", "domain": ["artificial-intelligence", "large-language-models", "chatbots", "developer-tools", "messaging-platforms"], "enriched": true, "function": ["agent-framework", "mcp", "chatbot", "chat-interface", "workflow-automation", "webhook", "self-hosted"], "health_score": 73, "homepage": "https://ghostwright.dev/phantom", "language": "TypeScript", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["ghostwright/phantom"], "name": "ghostwright/phantom", "platform": ["self-hosted", "bun"], "pushed_at": "2026-06-16T21:26:09+00:00", "repo": "ghostwright/phantom", "stars": 1461, "tags": ["ai-coworker", "claude-agent-sdk", "persistent-memory", "self-evolving-agent", "autonomous-agents", "mcp-server", "slack-integration", "email-identity", "anthropic", "openai", "multi-provider-llm", "dedicated-vm", "tool-creation", "typescript", "ai-agents", "automation", "docker", "nodejs", "web-server", "telegram"], "topics": ["ai-agents", "ai-coworker", "anthropic", "autonomous-agents", "bun", "claude", "docker", "llm", "mcp", "self-evolution", "slack", "typescript"], "urls": [], "use_cases": ["run an autonomous AI agent with persistent memory across sessions", "give an AI agent its own computer to install software and build tools", "AI teammate that lives in Slack and emails me drafts to approve", "self-host an AI agent that connects to my team's tools", "AI agent that can create its own tools and register them as MCP servers", "replace disposable chat sessions with a long-lived AI coworker", "automate recurring GTM or reporting workflows with an LLM agent"], "what_it_is": "Phantom is a self-hostable AI agent application that gives each agent its own dedicated computer (VM runtime), persistent memory, and identity across channels like Slack, Telegram, email, webhooks, and a built-in web chat. Built on the Claude Agent SDK, it can install software, create its own tools, register MCP servers, and autonomously build infrastructure while improving at your work over time.", "when_to_avoid": ["You only need a simple stateless chatbot or a library to embed agent logic inside your own application - use the Claude Agent SDK or similar directly", "You are not comfortable granting an autonomous agent its own VM, credentials, and permission to build infrastructure", "You require pre-1.0 API stability or enterprise-grade SLAs; the project is still pre-1.0 (v0.20.x) and evolving quickly", "You need agents strictly confined to human-approved actions with no autonomous self-extension"], "when_to_choose": ["You want an always-on, memory-carrying AI teammate integrated into Slack, Telegram, or email rather than a stateless chat window", "You need an agent that can provision its own runtime, databases, dashboards, and APIs on a dedicated machine", "You want MCP-native agents whose self-built tools can be reused by other agents and sessions", "You want multi-provider LLM support (Anthropic, OpenAI, GLM, Qwen) under one self-hosted agent runtime"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/ghostwright-phantom", "repo": "ghostwright/phantom", "role": "main", "score": 54}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.406509+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:35:20.465125+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f0e9bed25a0ffebf85575b767da5da55e7c8da0fe14c2a8c7f9c2d81ea227d1", "fetched_at": "2026-08-28T04:04:47.406509+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ghostwright/phantom"}, {"content_hash": "a7f22cf657f3652c21f385def1f551ae9b11ef42f2bcebd7fb5d4f14833a4402", "fetched_at": "2026-08-29T11:44:18.066190+00:00", "kind": "homepage", "missing": false, "url": "https://ghostwright.dev/phantom"}, {"content_hash": "2dd39855db1f3161ac91de7c59799351531b50eba186876d55872e62ceaff749", "fetched_at": "2026-08-29T11:44:18.075577+00:00", "kind": "site_page", "missing": false, "url": "https://ghostwright.dev/phantom/personas/gtm-eng-ryan"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.406509+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:35:20.465125+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f0e9bed25a0ffebf85575b767da5da55e7c8da0fe14c2a8c7f9c2d81ea227d1", "fetched_at": "2026-08-28T04:04:47.406509+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ghostwright/phantom"}, {"content_hash": "a7f22cf657f3652c21f385def1f551ae9b11ef42f2bcebd7fb5d4f14833a4402", "fetched_at": "2026-08-29T11:44:18.066190+00:00", "kind": "homepage", "missing": false, "url": "https://ghostwright.dev/phantom"}, {"content_hash": "2dd39855db1f3161ac91de7c59799351531b50eba186876d55872e62ceaff749", "fetched_at": "2026-08-29T11:44:18.075577+00:00", "kind": "site_page", "missing": false, "url": "https://ghostwright.dev/phantom/personas/gtm-eng-ryan"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:35:20.465125+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f0e9bed25a0ffebf85575b767da5da55e7c8da0fe14c2a8c7f9c2d81ea227d1", "fetched_at": "2026-08-28T04:04:47.406509+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ghostwright/phantom"}, {"content_hash": "a7f22cf657f3652c21f385def1f551ae9b11ef42f2bcebd7fb5d4f14833a4402", "fetched_at": "2026-08-29T11:44:18.066190+00:00", "kind": "homepage", "missing": false, "url": "https://ghostwright.dev/phantom"}, {"content_hash": "2dd39855db1f3161ac91de7c59799351531b50eba186876d55872e62ceaff749", "fetched_at": "2026-08-29T11:44:18.075577+00:00", "kind": "site_page", "missing": false, "url": "https://ghostwright.dev/phantom/personas/gtm-eng-ryan"}], "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:47.406509+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.406509+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.406509+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:35:20.465125+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f0e9bed25a0ffebf85575b767da5da55e7c8da0fe14c2a8c7f9c2d81ea227d1", "fetched_at": "2026-08-28T04:04:47.406509+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ghostwright/phantom"}, {"content_hash": "a7f22cf657f3652c21f385def1f551ae9b11ef42f2bcebd7fb5d4f14833a4402", "fetched_at": "2026-08-29T11:44:18.066190+00:00", "kind": "homepage", "missing": false, "url": "https://ghostwright.dev/phantom"}, {"content_hash": "2dd39855db1f3161ac91de7c59799351531b50eba186876d55872e62ceaff749", "fetched_at": "2026-08-29T11:44:18.075577+00:00", "kind": "site_page", "missing": false, "url": "https://ghostwright.dev/phantom/personas/gtm-eng-ryan"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.406509+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.406509+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:35:20.465125+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f0e9bed25a0ffebf85575b767da5da55e7c8da0fe14c2a8c7f9c2d81ea227d1", "fetched_at": "2026-08-28T04:04:47.406509+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ghostwright/phantom"}, {"content_hash": "a7f22cf657f3652c21f385def1f551ae9b11ef42f2bcebd7fb5d4f14833a4402", "fetched_at": "2026-08-29T11:44:18.066190+00:00", "kind": "homepage", "missing": false, "url": "https://ghostwright.dev/phantom"}, {"content_hash": "2dd39855db1f3161ac91de7c59799351531b50eba186876d55872e62ceaff749", "fetched_at": "2026-08-29T11:44:18.075577+00:00", "kind": "site_page", "missing": false, "url": "https://ghostwright.dev/phantom/personas/gtm-eng-ryan"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.406509+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.406509+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.406509+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:35:20.465125+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f0e9bed25a0ffebf85575b767da5da55e7c8da0fe14c2a8c7f9c2d81ea227d1", "fetched_at": "2026-08-28T04:04:47.406509+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ghostwright/phantom"}, {"content_hash": "a7f22cf657f3652c21f385def1f551ae9b11ef42f2bcebd7fb5d4f14833a4402", "fetched_at": "2026-08-29T11:44:18.066190+00:00", "kind": "homepage", "missing": false, "url": "https://ghostwright.dev/phantom"}, {"content_hash": "2dd39855db1f3161ac91de7c59799351531b50eba186876d55872e62ceaff749", "fetched_at": "2026-08-29T11:44:18.075577+00:00", "kind": "site_page", "missing": false, "url": "https://ghostwright.dev/phantom/personas/gtm-eng-ryan"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.406509+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.406509+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:35:20.465125+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f0e9bed25a0ffebf85575b767da5da55e7c8da0fe14c2a8c7f9c2d81ea227d1", "fetched_at": "2026-08-28T04:04:47.406509+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ghostwright/phantom"}, {"content_hash": "a7f22cf657f3652c21f385def1f551ae9b11ef42f2bcebd7fb5d4f14833a4402", "fetched_at": "2026-08-29T11:44:18.066190+00:00", "kind": "homepage", "missing": false, "url": "https://ghostwright.dev/phantom"}, {"content_hash": "2dd39855db1f3161ac91de7c59799351531b50eba186876d55872e62ceaff749", "fetched_at": "2026-08-29T11:44:18.075577+00:00", "kind": "site_page", "missing": false, "url": "https://ghostwright.dev/phantom/personas/gtm-eng-ryan"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:35:20.465125+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f0e9bed25a0ffebf85575b767da5da55e7c8da0fe14c2a8c7f9c2d81ea227d1", "fetched_at": "2026-08-28T04:04:47.406509+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ghostwright/phantom"}, {"content_hash": "a7f22cf657f3652c21f385def1f551ae9b11ef42f2bcebd7fb5d4f14833a4402", "fetched_at": "2026-08-29T11:44:18.066190+00:00", "kind": "homepage", "missing": false, "url": "https://ghostwright.dev/phantom"}, {"content_hash": "2dd39855db1f3161ac91de7c59799351531b50eba186876d55872e62ceaff749", "fetched_at": "2026-08-29T11:44:18.075577+00:00", "kind": "site_page", "missing": false, "url": "https://ghostwright.dev/phantom/personas/gtm-eng-ryan"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:35:20.465125+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f0e9bed25a0ffebf85575b767da5da55e7c8da0fe14c2a8c7f9c2d81ea227d1", "fetched_at": "2026-08-28T04:04:47.406509+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ghostwright/phantom"}, {"content_hash": "a7f22cf657f3652c21f385def1f551ae9b11ef42f2bcebd7fb5d4f14833a4402", "fetched_at": "2026-08-29T11:44:18.066190+00:00", "kind": "homepage", "missing": false, "url": "https://ghostwright.dev/phantom"}, {"content_hash": "2dd39855db1f3161ac91de7c59799351531b50eba186876d55872e62ceaff749", "fetched_at": "2026-08-29T11:44:18.075577+00:00", "kind": "site_page", "missing": false, "url": "https://ghostwright.dev/phantom/personas/gtm-eng-ryan"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:35:20.465125+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f0e9bed25a0ffebf85575b767da5da55e7c8da0fe14c2a8c7f9c2d81ea227d1", "fetched_at": "2026-08-28T04:04:47.406509+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ghostwright/phantom"}, {"content_hash": "a7f22cf657f3652c21f385def1f551ae9b11ef42f2bcebd7fb5d4f14833a4402", "fetched_at": "2026-08-29T11:44:18.066190+00:00", "kind": "homepage", "missing": false, "url": "https://ghostwright.dev/phantom"}, {"content_hash": "2dd39855db1f3161ac91de7c59799351531b50eba186876d55872e62ceaff749", "fetched_at": "2026-08-29T11:44:18.075577+00:00", "kind": "site_page", "missing": false, "url": "https://ghostwright.dev/phantom/personas/gtm-eng-ryan"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 87, "longevity": 11, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases", "young"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 160, "days_push": 78, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 54, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}