F forkctl
v2.0.0 · 22 tools · 378 tests

Adoption control plane for GitHub repos.

Forking is one click. Adoption is everything else. forkctl assesses readiness, picks fork vs template, executes the copy as a tracked async operation, leaves the result runnable, and keeps it synced.

Assess

npx @mcptoolshop/forkctl assess octocat/hello-world

Choose path

npx @mcptoolshop/forkctl choose-path octocat/hello-world --goal contribute_upstream

Sync a fork

npx @mcptoolshop/forkctl sync myhandle/my-fork

Fleet health

npx @mcptoolshop/forkctl fleet-health

Seven layers, one product

Forkctl is not a fork wrapper. It is end-to-end adoption infrastructure.

Assessment

Score a repo's adoption-readiness across legal, setup, contribution, hygiene, template, and sync. Get blockers with fixes.

Execution

Async-aware fork or template generation with a real operation state machine. Surfaces enterprise/org policy blockers before the call.

Bootstrap

Five profiles (contributor, starter-kit, internal-seed, client-delivery, experiment). Idempotent — never overwrites existing files.

Sync

Real GitHub merge-upstream API. Cross-repo divergence diagnosis. Diverged forks route to a PR — never force-pushes.

Fleet

List, health-check, and batch-sync your forks. Conflicts surface as conflicts, not errors. Rate-limit-friendly.

Receipts

Append-only SQLite audit log. Every operation has a machine-readable receipt. Tokens are redacted at write time.

Rename · new in v1.1.0

AST-aware polyglot rename. Identity files, code symbols (tree-sitter, 26 languages), textual surfaces, lockfile regen. Reviewable diff, snapshotted apply, one-command rollback.

Quick start

Audit a repo

npx @mcptoolshop/forkctl assess octocat/hello-world

Pick the right path

npx @mcptoolshop/forkctl choose-path octocat/hello-world \
  --goal contribute_upstream

Fork it (async, tracked)

npx @mcptoolshop/forkctl create-fork octocat/hello-world \
  --destination-org my-org

Sync your fork

npx @mcptoolshop/forkctl sync myhandle/my-fork

Bootstrap with a profile

npx @mcptoolshop/forkctl bootstrap myhandle/my-fork \
  --source octocat/hello-world \
  --profile contributor

Use as an MCP server

{
  "mcpServers": {
    "forkctl": {
      "command": "npx",
      "args": ["-y", "@mcptoolshop/forkctl", "mcp"],
      "env": { "GITHUB_TOKEN": "ghp_..." }
    }
  }
}

The twenty-two tools

Every tool is schema-validated, audit-logged, and exposed through both MCP and CLI.

Assessment · 3

forkctl_assess · forkctl_choose_path · forkctl_make_forkable

Execution · 4

forkctl_preflight_policy · forkctl_create_fork · forkctl_create_from_template · forkctl_check_operation

Bootstrap · 4

forkctl_bootstrap · forkctl_configure_upstream · forkctl_scan_drift · forkctl_emit_handoff

Sync · 3

forkctl_sync · forkctl_diagnose_divergence · forkctl_propose_sync_pr

Fleet · 3

forkctl_list_forks · forkctl_fleet_health · forkctl_batch_sync

Receipts · 2

forkctl_receipt · forkctl_audit_log

Rename · 3 · new

forkctl_rename_plan · forkctl_rename_apply · forkctl_rename_rollback