{"adoption": {"forks": 188, "observed_at": "2026-09-03T02:15:09.001085+00:00", "stars": 1171}, "canonical_url": "https://ross.abutalabs.com/products/alook", "card": {"archived": false, "artifact_type": "application", "description": "Rooms for people and agents.", "domain": ["developer-tools", "real-time"], "enriched": true, "function": ["agent-framework", "chat-interface", "webhook", "mcp"], "health_score": 100, "homepage": "https://alook.ai", "language": "TypeScript", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["alookai/alook"], "name": "alookai/alook", "platform": ["cross-platform", "self-hosted"], "pushed_at": "2026-09-03T01:57:57+00:00", "repo": "alookai/alook", "stars": 1171, "tags": ["multi-agent", "claude-code", "codex", "opencode", "discord-style-workspace", "local-first", "agent-identity", "solopreneur", "ai-memory", "ai-agents", "automation", "nodejs", "web-server"], "topics": ["agent-orchestration", "ai-collaboration", "claude-code", "codex", "coding-agent", "multiple-agent", "one-person-business", "one-person-company", "one-person-team", "opencode", "agent-automation", "agent-workflow", "ai-agents", "ai-memory", "ai-workforce", "autonomous-agents", "solopreneur", "claude-code-skills", "multi-agent"], "urls": [], "use_cases": ["let my team chat with my local coding agent", "give AI agents persistent identities and inboxes", "collaborate with Claude Code in shared channels", "run a one-person business with multiple AI agents", "keep agent context and memory between sessions", "share my AI agent with trusted collaborators", "access my agents from desktop and phone"], "what_it_is": "Alook is a Discord-style collaboration workspace where humans and local AI coding agents (Claude Code, Codex, Cursor, OpenCode) share rooms, channels, and DMs. Agents get persistent identities, inboxes, and memory, and run locally on your machine while teammates interact with them remotely.", "when_to_avoid": ["you need fully autonomous cloud-hosted agents with no local runtime", "you want a general-purpose team chat app without AI agent integration", "your agents cannot run on your own machine or you require strict SaaS-only deployment"], "when_to_choose": ["you use local coding agents like Claude Code, Codex, or OpenCode and want teammates to talk to them directly", "you want a chat-style workspace where agents and humans share rooms with persistent identities", "you want agents to keep memory and initiative across sessions without forwarding messages or screen sharing"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/alook", "repo": "alookai/alook", "role": "main", "score": 78}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-09-03T02:15:09.001085+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:31:47.513293+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5978e70129336483f89ec6a599e6f12aeadfb5f578d54e46d0a20e1bd6f528bb", "fetched_at": "2026-09-03T02:15:09.001085+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alookai/alook"}, {"content_hash": "ccab1c28f47b76e55d660375f376c084002ecbc97d2e11bc50244a72afd2cfce", "fetched_at": "2026-08-29T12:36:34.515263+00:00", "kind": "homepage", "missing": false, "url": "https://alook.ai"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-09-03T02:15:09.001085+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:31:47.513293+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5978e70129336483f89ec6a599e6f12aeadfb5f578d54e46d0a20e1bd6f528bb", "fetched_at": "2026-09-03T02:15:09.001085+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alookai/alook"}, {"content_hash": "ccab1c28f47b76e55d660375f376c084002ecbc97d2e11bc50244a72afd2cfce", "fetched_at": "2026-08-29T12:36:34.515263+00:00", "kind": "homepage", "missing": false, "url": "https://alook.ai"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:31:47.513293+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5978e70129336483f89ec6a599e6f12aeadfb5f578d54e46d0a20e1bd6f528bb", "fetched_at": "2026-09-03T02:15:09.001085+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alookai/alook"}, {"content_hash": "ccab1c28f47b76e55d660375f376c084002ecbc97d2e11bc50244a72afd2cfce", "fetched_at": "2026-08-29T12:36:34.515263+00:00", "kind": "homepage", "missing": false, "url": "https://alook.ai"}], "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:09.001085+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-09-03T02:15:09.001085+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-09-03T02:15:09.001085+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:31:47.513293+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5978e70129336483f89ec6a599e6f12aeadfb5f578d54e46d0a20e1bd6f528bb", "fetched_at": "2026-09-03T02:15:09.001085+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alookai/alook"}, {"content_hash": "ccab1c28f47b76e55d660375f376c084002ecbc97d2e11bc50244a72afd2cfce", "fetched_at": "2026-08-29T12:36:34.515263+00:00", "kind": "homepage", "missing": false, "url": "https://alook.ai"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-09-03T02:15:09.001085+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-09-03T02:15:09.001085+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:31:47.513293+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5978e70129336483f89ec6a599e6f12aeadfb5f578d54e46d0a20e1bd6f528bb", "fetched_at": "2026-09-03T02:15:09.001085+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alookai/alook"}, {"content_hash": "ccab1c28f47b76e55d660375f376c084002ecbc97d2e11bc50244a72afd2cfce", "fetched_at": "2026-08-29T12:36:34.515263+00:00", "kind": "homepage", "missing": false, "url": "https://alook.ai"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-09-03T02:15:09.001085+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-09-03T02:15:09.001085+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-09-03T02:15:09.001085+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:31:47.513293+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5978e70129336483f89ec6a599e6f12aeadfb5f578d54e46d0a20e1bd6f528bb", "fetched_at": "2026-09-03T02:15:09.001085+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alookai/alook"}, {"content_hash": "ccab1c28f47b76e55d660375f376c084002ecbc97d2e11bc50244a72afd2cfce", "fetched_at": "2026-08-29T12:36:34.515263+00:00", "kind": "homepage", "missing": false, "url": "https://alook.ai"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-09-03T02:15:09.001085+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-09-03T02:15:09.001085+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:31:47.513293+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5978e70129336483f89ec6a599e6f12aeadfb5f578d54e46d0a20e1bd6f528bb", "fetched_at": "2026-09-03T02:15:09.001085+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alookai/alook"}, {"content_hash": "ccab1c28f47b76e55d660375f376c084002ecbc97d2e11bc50244a72afd2cfce", "fetched_at": "2026-08-29T12:36:34.515263+00:00", "kind": "homepage", "missing": false, "url": "https://alook.ai"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:31:47.513293+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5978e70129336483f89ec6a599e6f12aeadfb5f578d54e46d0a20e1bd6f528bb", "fetched_at": "2026-09-03T02:15:09.001085+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alookai/alook"}, {"content_hash": "ccab1c28f47b76e55d660375f376c084002ecbc97d2e11bc50244a72afd2cfce", "fetched_at": "2026-08-29T12:36:34.515263+00:00", "kind": "homepage", "missing": false, "url": "https://alook.ai"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:31:47.513293+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5978e70129336483f89ec6a599e6f12aeadfb5f578d54e46d0a20e1bd6f528bb", "fetched_at": "2026-09-03T02:15:09.001085+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alookai/alook"}, {"content_hash": "ccab1c28f47b76e55d660375f376c084002ecbc97d2e11bc50244a72afd2cfce", "fetched_at": "2026-08-29T12:36:34.515263+00:00", "kind": "homepage", "missing": false, "url": "https://alook.ai"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:31:47.513293+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5978e70129336483f89ec6a599e6f12aeadfb5f578d54e46d0a20e1bd6f528bb", "fetched_at": "2026-09-03T02:15:09.001085+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alookai/alook"}, {"content_hash": "ccab1c28f47b76e55d660375f376c084002ecbc97d2e11bc50244a72afd2cfce", "fetched_at": "2026-08-29T12:36:34.515263+00:00", "kind": "homepage", "missing": false, "url": "https://alook.ai"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 100, "longevity": 10, "rhythm": 88}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": ["young"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 152, "days_push": 0, "days_rel": 0, "gap_med": 0, "n_releases_24m": 234}, "score": 78, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 3, "stale_scrape": false}}