{"adoption": {"forks": 156, "observed_at": "2026-08-28T04:04:48.939183+00:00", "stars": 1470}, "canonical_url": "https://ross.abutalabs.com/products/treehouse", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Manage worktrees without managing worktrees.", "domain": ["developer-tools", "version-control"], "enriched": true, "function": ["developer-tools", "cli", "workflow-automation"], "health_score": 100, "homepage": null, "language": "Go", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["kunchenguid/treehouse"], "name": "kunchenguid/treehouse", "platform": ["windows", "cli"], "pushed_at": "2026-08-25T04:39:59+00:00", "repo": "kunchenguid/treehouse", "stars": 1470, "tags": ["git-worktree", "worktree-pool", "ai-coding-agents", "developer-workflow", "isolation", "command-line", "ai-agents", "macos", "linux"], "topics": ["agents", "coding", "git", "worktree"], "urls": [], "use_cases": ["run multiple AI agent sessions in parallel without conflicts", "get an isolated git worktree instantly for a new task", "reuse worktrees with dependencies and build cache intact", "stop juggling multiple clones of the same repository", "prevent agents from stepping on each other's changes", "clean up lingering processes when leaving a worktree"], "what_it_is": "Treehouse is a Go CLI tool that manages a pool of reusable, isolated git worktrees so developers and AI coding agents can work on multiple tasks in parallel without manual repo cloning. It drops users into a clean worktree subshell and returns it to a pool afterward, preserving dependencies and build caches.", "when_to_avoid": ["you only work on one task at a time in a single checkout", "your workflow doesn't use git or worktrees", "you need full CI/CD or container-level environment isolation rather than git worktree isolation"], "when_to_choose": ["you run AI coding agents frequently and want fast, isolated environments", "you work on several tasks in one repo simultaneously", "you want to avoid re-cloning and reinstalling dependencies per task", "you need automatic conflict detection between in-use worktrees"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/treehouse", "repo": "kunchenguid/treehouse", "role": "main", "score": 82}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:48.939183+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:34:49.918207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f97b9e1a195307ba5780f7e71405cb3e11500c9bb991101427d95cf78d2753df", "fetched_at": "2026-08-28T04:04:48.939183+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kunchenguid/treehouse"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:48.939183+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:34:49.918207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f97b9e1a195307ba5780f7e71405cb3e11500c9bb991101427d95cf78d2753df", "fetched_at": "2026-08-28T04:04:48.939183+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kunchenguid/treehouse"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:34:49.918207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f97b9e1a195307ba5780f7e71405cb3e11500c9bb991101427d95cf78d2753df", "fetched_at": "2026-08-28T04:04:48.939183+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kunchenguid/treehouse"}], "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:48.939183+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:48.939183+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:48.939183+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:34:49.918207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f97b9e1a195307ba5780f7e71405cb3e11500c9bb991101427d95cf78d2753df", "fetched_at": "2026-08-28T04:04:48.939183+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kunchenguid/treehouse"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:48.939183+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:48.939183+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:34:49.918207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f97b9e1a195307ba5780f7e71405cb3e11500c9bb991101427d95cf78d2753df", "fetched_at": "2026-08-28T04:04:48.939183+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kunchenguid/treehouse"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:48.939183+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:48.939183+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:48.939183+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:34:49.918207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f97b9e1a195307ba5780f7e71405cb3e11500c9bb991101427d95cf78d2753df", "fetched_at": "2026-08-28T04:04:48.939183+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kunchenguid/treehouse"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:48.939183+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:48.939183+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:34:49.918207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f97b9e1a195307ba5780f7e71405cb3e11500c9bb991101427d95cf78d2753df", "fetched_at": "2026-08-28T04:04:48.939183+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kunchenguid/treehouse"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:34:49.918207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f97b9e1a195307ba5780f7e71405cb3e11500c9bb991101427d95cf78d2753df", "fetched_at": "2026-08-28T04:04:48.939183+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kunchenguid/treehouse"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:34:49.918207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f97b9e1a195307ba5780f7e71405cb3e11500c9bb991101427d95cf78d2753df", "fetched_at": "2026-08-28T04:04:48.939183+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kunchenguid/treehouse"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:34:49.918207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f97b9e1a195307ba5780f7e71405cb3e11500c9bb991101427d95cf78d2753df", "fetched_at": "2026-08-28T04:04:48.939183+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kunchenguid/treehouse"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 12, "rhythm": 99}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["young"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 172, "days_push": 8, "days_rel": 11, "gap_med": 1, "n_releases_24m": 26}, "score": 82, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}