{"id":51951714,"url":"https://github.com/dubsopenhub/ghost-ops","last_synced_at":"2026-07-29T06:01:28.751Z","repository":{"id":340719606,"uuid":"1167278705","full_name":"DUBSOpenHub/ghost-ops","owner":"DUBSOpenHub","description":"👻 Ghost Ops — autonomous agent operations daemon. Watches repos, triages issues, evolves agents. Runs while you sleep.","archived":false,"fork":false,"pushed_at":"2026-06-25T09:33:56.000Z","size":162,"stargazers_count":2,"open_issues_count":50,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-07-07T22:21:29.349Z","etag":null,"topics":["ai-agents","autonomous","copilot-cli","daemon","elo-routing","github-copilot","github-models","launchd","macos","python"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DUBSOpenHub.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-26T05:54:03.000Z","updated_at":"2026-05-21T19:56:15.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/DUBSOpenHub/ghost-ops","commit_stats":null,"previous_names":["dubsopenhub/ghost-ops"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/DUBSOpenHub/ghost-ops","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DUBSOpenHub%2Fghost-ops","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DUBSOpenHub%2Fghost-ops/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DUBSOpenHub%2Fghost-ops/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DUBSOpenHub%2Fghost-ops/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DUBSOpenHub","download_url":"https://codeload.github.com/DUBSOpenHub/ghost-ops/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DUBSOpenHub%2Fghost-ops/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36020486,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-07-29T02:00:04.910Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-agents","autonomous","copilot-cli","daemon","elo-routing","github-copilot","github-models","launchd","macos","python"],"created_at":"2026-07-29T06:01:27.213Z","updated_at":"2026-07-29T06:01:28.723Z","avatar_url":"https://github.com/DUBSOpenHub.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 👻 Ghost Ops\n\n**Your agents clock in when you clock out.**\n\nGhost Ops is an autonomous agent operations daemon that runs 24/7 on macOS via `launchd`. Four missions, one brain.\n\n## What It Does\n\n| Mission | Schedule | Function |\n|---------|----------|----------|\n| **Portfolio Watchdog** | Nightly | Scans your GitHub repos for security regressions, compliance drift, and activity |\n| **Inbox Autopilot** | Hourly | Triages new issues and PRs with LLM-drafted responses (human reviews before posting) |\n| **Fleet Evolution** | Daily | Mutates underperforming agent prompts, validates with 3-model consensus, deploys winners (see [🚑 Grid Medic](#grid-medic)) |\n\n## Architecture\n\n```\nlaunchd (survives reboots)\n  └── ghost_ops.py\n       ├── Scheduler ─────── cron-like trigger engine\n       ├── ELO Router ────── routes tasks to best-performing models\n       ├── LLM Backend ───── GitHub Models API → Amplifier CLI fallback\n       ├── Mission: Portfolio Watchdog\n       ├── Mission: Inbox Autopilot\n       ├── Mission: Fleet Evolution\n       ├── State Store ────── SQLite ghost_ops.db\n       └── Alert System ──── writes to alerts table\n```\n\n## Quick Start\n\n```bash\n# Clone\ngit clone https://github.com/DUBSOpenHub/ghost-ops.git\ncd ghost-ops\n\n# Test (no API calls)\npython3 ghost_ops.py --dry-run --once\n\n# Run a single mission\npython3 ghost_ops.py --mission portfolio_watchdog --dry-run\n\n# Install as daemon\nbash install.sh\n```\n\n## Requirements\n\n- **macOS** (launchd)\n- **Python 3.14+** (pure stdlib — zero pip dependencies)\n- **GitHub CLI** (`gh`) — authenticated\n\n## Configuration\n\nEdit `ghost_ops.toml`:\n\n```toml\n[ghost_ops]\nlog_level = \"INFO\"\ndb_path = \"ghost_ops.db\"\nelo_path = \"~/.copilot/hackathon-elo.json\"\nagents_dir = \"~/.copilot/agents\"\n\n[missions.portfolio_watchdog]\nenabled = true\nschedule = \"0 6 * * *\"    # 6 AM daily\nrepos = [\"owner/repo1\", \"owner/repo2\"]\n\n[missions.inbox_autopilot]\nenabled = true\nschedule = \"0 * * * *\"    # every hour\n\n[missions.fleet_evolution]\nenabled = true\nschedule = \"0 3 * * *\"    # 3 AM daily\n```\n\n## Key Design Decisions\n\n- **Pure Python stdlib** — no pip dependencies, no venv, no version drift\n- **LLM calls via `gh api`** — reuses existing GitHub auth, no API key management\n- **ELO-routed model selection** — your hackathon data picks the best model per task\n- **Drafts only by default** — Inbox Autopilot never auto-posts without explicit config\n- **Backup before mutate** — Fleet Evolution always backs up agent files first\n- **Dry-run everything** — every mission supports `--dry-run` for safe testing\n\n## Project Structure\n\n```\nghost-ops/\n├── ghost_ops.py          # Main daemon\n├── ghost_ops.toml        # Configuration\n├── install.sh            # One-command installer\n├── com.dubsopenhub.ghost-ops.plist\n├── lib/\n│   ├── elo_router.py     # ELO-based model selection\n│   ├── llm_backend.py    # LLM API abstraction\n│   └── state.py          # SQLite state store (6 tables)\n├── missions/\n│   ├── portfolio_watchdog.py\n│   ├── inbox_autopilot.py\n│   └── fleet_evolution.py\n└── tests/\n    ├── test_elo_router.py\n    └── test_state.py\n```\n\n## 🚑 Grid Medic\n\nFleet Evolution is the daemon implementation of the **[🚑 Grid Medic](https://github.com/DUBSOpenHub/ghost-ops/blob/main/missions/fleet_evolution.py)** pattern — a self-healing meta-agent that continuously monitors, repairs, and improves the agent fleet.\n\n| Capability | How It Works |\n|---|---|\n| **Fitness scoring** | Ranks agents by ELO performance data; lowest-fitness agents evolve first |\n| **LLM-powered mutation** | Generates improved agent prompts via configurable models |\n| **Multi-model consensus** | 2-of-3 validator models must approve before any change deploys |\n| **A/B testing** | Runs original vs. mutated prompts on the same task; blind-judges the outputs |\n| **Auto-rollback** | Re-tests deployed mutations within 24 hours; rolls back any that regress |\n| **Agent X-Ray integration** | Scores agent files with deterministic pattern matching (zero tokens) |\n| **Paired-file sync** | Keeps co-located copies (e.g., skill files) in sync after approved mutations |\n\nWhen used interactively via Copilot CLI, 🚑 **Grid Medic** is available as a standalone agent (`grid-medic`) that can diagnose, improve, and validate individual agents on demand. Fleet Evolution runs the same logic autonomously on a schedule.\n\n## Testing\n\n```bash\n# Unit tests (30 tests, no network required)\npython3 -m unittest discover -s tests -v\n\n# Dry-run smoke test\npython3 ghost_ops.py --dry-run --once\n```\n\n## License\n\nMIT\n\n---\n\n🐙 Created with 💜 by [@DUBSOpenHub](https://github.com/DUBSOpenHub) with the [GitHub Copilot CLI](https://docs.github.com/copilot/concepts/agents/about-copilot-cli).\n\nLet's build! 🚀✨\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdubsopenhub%2Fghost-ops","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdubsopenhub%2Fghost-ops","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdubsopenhub%2Fghost-ops/lists"}