{"adoption": {"forks": 1387, "observed_at": "2026-08-28T04:08:36.467010+00:00", "stars": 4163}, "canonical_url": "https://ross.abutalabs.com/products/firstmate", "card": {"archived": false, "artifact_type": "framework", "description": "Talk to one agent. Ship with a crew.", "domain": ["developer-tools"], "enriched": true, "function": ["agent-framework", "workflow-automation", "developer-tools", "cli"], "health_score": 80, "homepage": null, "language": "Shell", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["kunchenguid/firstmate"], "name": "kunchenguid/firstmate", "platform": ["cli"], "pushed_at": "2026-08-26T23:05:44+00:00", "repo": "kunchenguid/firstmate", "stars": 4163, "tags": ["multi-agent-orchestration", "coding-agents", "git-worktrees", "agent-distro", "tmux", "parallel-tasks", "ai-coding", "ai-agents", "automation", "command-line", "macos", "linux", "shell"], "topics": [], "urls": [], "use_cases": ["run multiple coding agent tasks in parallel without juggling terminal tabs", "dispatch fixes, investigations, plans, and audits to autonomous sub-agents", "give each parallel task a clean isolated git worktree", "get finished PRs or local merges from delegated coding tasks", "supervise a fleet of agents across local and SSH-reachable hosts", "turn any terminal coding agent into a multi-agent crew supervisor"], "what_it_is": "firstmate is an 'agent distro' - a portable directory of instructions, skills, and scripts that turns a terminal coding agent into a supervisor that dispatches a crew of autonomous sub-agents. You talk to one liaison agent (the first mate), which spawns parallel crew agents in isolated git worktrees, supervises them, and delivers finished PRs, merges, or investigation reports.", "when_to_avoid": ["you only need a single coding agent session with no parallelism", "you want a GUI or hosted product rather than a repo-based distro of instructions and scripts", "you work primarily on Windows or outside terminal-based agent harnesses", "you need a model, harness, MCP server, or standalone CLI - firstmate explicitly is none of these"], "when_to_choose": ["you regularly run several coding agent tasks in parallel on one or more repos", "you want a single liaison agent handling dispatch, supervision, and escalation", "you need isolated git worktrees per task to avoid collisions", "you use tmux/zellij-based terminal coding agents on macOS or Linux"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/firstmate", "repo": "kunchenguid/firstmate", "role": "main", "score": 58}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.467010+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:22:48.196348+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6b9ccc34f8ada3a43dfa6813a1a483e3b4a7bbab54c9e1a8b3360cbb2d4f9c94", "fetched_at": "2026-08-28T04:08:36.467010+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kunchenguid/firstmate"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.467010+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:22:48.196348+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6b9ccc34f8ada3a43dfa6813a1a483e3b4a7bbab54c9e1a8b3360cbb2d4f9c94", "fetched_at": "2026-08-28T04:08:36.467010+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kunchenguid/firstmate"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:22:48.196348+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6b9ccc34f8ada3a43dfa6813a1a483e3b4a7bbab54c9e1a8b3360cbb2d4f9c94", "fetched_at": "2026-08-28T04:08:36.467010+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kunchenguid/firstmate"}], "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:08:36.467010+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.467010+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.467010+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:22:48.196348+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6b9ccc34f8ada3a43dfa6813a1a483e3b4a7bbab54c9e1a8b3360cbb2d4f9c94", "fetched_at": "2026-08-28T04:08:36.467010+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kunchenguid/firstmate"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.467010+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.467010+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:22:48.196348+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6b9ccc34f8ada3a43dfa6813a1a483e3b4a7bbab54c9e1a8b3360cbb2d4f9c94", "fetched_at": "2026-08-28T04:08:36.467010+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kunchenguid/firstmate"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.467010+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.467010+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.467010+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:22:48.196348+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6b9ccc34f8ada3a43dfa6813a1a483e3b4a7bbab54c9e1a8b3360cbb2d4f9c94", "fetched_at": "2026-08-28T04:08:36.467010+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kunchenguid/firstmate"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.467010+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.467010+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:22:48.196348+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6b9ccc34f8ada3a43dfa6813a1a483e3b4a7bbab54c9e1a8b3360cbb2d4f9c94", "fetched_at": "2026-08-28T04:08:36.467010+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kunchenguid/firstmate"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:22:48.196348+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6b9ccc34f8ada3a43dfa6813a1a483e3b4a7bbab54c9e1a8b3360cbb2d4f9c94", "fetched_at": "2026-08-28T04:08:36.467010+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kunchenguid/firstmate"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:22:48.196348+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6b9ccc34f8ada3a43dfa6813a1a483e3b4a7bbab54c9e1a8b3360cbb2d4f9c94", "fetched_at": "2026-08-28T04:08:36.467010+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kunchenguid/firstmate"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:22:48.196348+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6b9ccc34f8ada3a43dfa6813a1a483e3b4a7bbab54c9e1a8b3360cbb2d4f9c94", "fetched_at": "2026-08-28T04:08:36.467010+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kunchenguid/firstmate"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 5, "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": 82, "days_push": 7, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 58, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}