{"id":46226917,"url":"https://github.com/fractalmind-ai/agent-manager-skill","last_synced_at":"2026-03-03T16:48:17.555Z","repository":{"id":331529449,"uuid":"1129319847","full_name":"fractalmind-ai/agent-manager-skill","owner":"fractalmind-ai","description":"tmux + Python agent lifecycle manager (start/stop/monitor/assign) with cron-friendly scheduling; no server required","archived":false,"fork":false,"pushed_at":"2026-02-27T00:45:42.000Z","size":303,"stargazers_count":12,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-27T06:54:07.257Z","etag":null,"topics":["agent-orchestration","ai-agents","cli","cron","python","tmux"],"latest_commit_sha":null,"homepage":"https://github.com/fractalmind-ai/agent-manager-skill/blob/main/agent-manager/SKILL.md","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/fractalmind-ai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"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-01-06T23:31:06.000Z","updated_at":"2026-02-27T00:45:46.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/fractalmind-ai/agent-manager-skill","commit_stats":null,"previous_names":["fractalmind-ai/agent-manager-skill"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/fractalmind-ai/agent-manager-skill","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fractalmind-ai%2Fagent-manager-skill","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fractalmind-ai%2Fagent-manager-skill/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fractalmind-ai%2Fagent-manager-skill/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fractalmind-ai%2Fagent-manager-skill/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fractalmind-ai","download_url":"https://codeload.github.com/fractalmind-ai/agent-manager-skill/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fractalmind-ai%2Fagent-manager-skill/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30052134,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-03T15:26:47.567Z","status":"ssl_error","status_checked_at":"2026-03-03T15:26:17.132Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["agent-orchestration","ai-agents","cli","cron","python","tmux"],"created_at":"2026-03-03T16:48:16.959Z","updated_at":"2026-03-03T16:48:17.542Z","avatar_url":"https://github.com/fractalmind-ai.png","language":"Python","funding_links":[],"categories":["Lista de Habilidades","Uncategorized","Building","🤝 Collaboration \u0026 Project Management"],"sub_categories":["Habilidades de la Comunidad","Uncategorized","Tools"],"readme":"# Agent Manager (agent-manager)\n\nSimple, installation-agnostic agent lifecycle management using **tmux + Python**.\n\nManage multiple AI agents without running a server, wiring HTTP APIs, or pulling in heavy dependencies.\n\n![agent-manager demo](assets/demo.svg)\n\n## Why agent-manager?\n\nManaging multiple AI agents is deceptively complex:\n\n- Each agent needs its own long-running process\n- You need a reliable way to start/stop/monitor them\n- Scheduling (cron) should keep working even if you move the skill around\n\n**agent-manager** solves this with a tiny architecture: **tmux sessions + a single Python CLI**.\n\n**Advantages:**\n\n- **Zero dependencies** beyond `tmux` + `python3`\n- **Cross-platform** (where tmux runs)\n- **Cron-friendly**: `schedule sync` writes crontab entries calling the installed `main.py` by absolute path\n\n## Highlights\n\n- 🚀 Simple agent lifecycle management\n- 📅 Scheduled task execution via cron\n- 🔧 Installation-agnostic design\n- 🎯 Zero dependencies beyond tmux + Python\n\n## Installation\n\n### via openskills (recommended)\n\n```bash\n# Project installation (works even when `openskills` is not globally installed)\nnpx --yes openskills install fractalmind-ai/agent-manager-skill\n\n# Global installation\nnpx --yes openskills install fractalmind-ai/agent-manager-skill --global\n\n# If you already have a global openskills binary, this also works:\n# openskills install fractalmind-ai/agent-manager-skill\n```\n\n### Manual installation\n\n```bash\ngit clone https://github.com/fractalmind-ai/agent-manager-skill.git\ncd agent-manager-skill\ncp -r agent-manager ~/.claude/skills/agent-manager\n```\n\n## Usage\n\nAfter installation, read the skill documentation:\n\n```bash\n# Preferred (portable)\nnpx --yes openskills read agent-manager\n\n# Optional when openskills is globally installed:\n# openskills read agent-manager\n```\n\nOr view directly:\n\n```bash\ncat ~/.claude/skills/agent-manager/SKILL.md\n```\n\n## Quick Start\n\n```bash\n# From your repository root (where `agents/` lives)\ncd your-project\n\n# If installed (project-local; path varies by tool):\npython3 .agent/skills/agent-manager/scripts/main.py list\n# (or, if you use `.claude/skills/` instead of `.agent/skills/`)\npython3 .claude/skills/agent-manager/scripts/main.py list\n\n# If installed (global):\npython3 ~/.claude/skills/agent-manager/scripts/main.py list\n# (or, if you use `~/.agent/skills/` instead of `~/.claude/skills/`)\npython3 ~/.agent/skills/agent-manager/scripts/main.py list\n\n# Sanity check your setup\n# (use the same install path as above; replace `.agent/skills/` with `.claude/skills/` if needed)\npython3 .agent/skills/agent-manager/scripts/main.py doctor\n\n# Start / monitor / stop\n# (same note: replace `.agent/skills/` with `.claude/skills/` if needed)\npython3 .agent/skills/agent-manager/scripts/main.py start EMP_0001\npython3 .agent/skills/agent-manager/scripts/main.py status EMP_0001\npython3 .agent/skills/agent-manager/scripts/main.py monitor EMP_0001 --follow\npython3 .agent/skills/agent-manager/scripts/main.py stop EMP_0001\n\n# Optional: keep all agents in one shared tmux session (tabs/windows)\npython3 .agent/skills/agent-manager/scripts/main.py start EMP_0001 --tmux-layout windows\ntmux attach -t agent-manager\n# (Optional) Customize the shared session name via: $AGENT_MANAGER_TMUX_GROUP_SESSION\n\n# If you want to run the CLI from a cloned copy of this repo:\nREPO_ROOT=\"$PWD/your-project\" python3 agent-manager/scripts/main.py doctor\n```\n\n### Command Path Parity (Docs Baseline)\n\nTo avoid path drift across docs and runbooks, define one CLI alias and reuse it:\n\n```bash\n# Installed skill path (pick one that exists in your environment)\nCLI=\"python3 .agent/skills/agent-manager/scripts/main.py\"\n# CLI=\"python3 .claude/skills/agent-manager/scripts/main.py\"\n\n# If running from a cloned repo (not installed):\n# CLI=\"python3 agent-manager/scripts/main.py\"\n\n$CLI doctor\n$CLI list\n$CLI status EMP_0001\n```\n\n## Getting Started\n\nSee `examples/getting-started.md` for a 2-minute end-to-end walkthrough.\n\n## Scenario Config Examples\n\nSee [examples/agent-configs/README.md](examples/agent-configs/README.md) for six ready-to-adapt agent YAML templates:\n\n- Code review agent\n- Documentation generator agent\n- Test runner agent\n- Deployment assistant agent\n- Monitoring and alert agent\n- Data analysis agent\n\n## Demo\n\nThe screenshot above shows a real run of:\n\n- `list` (see configured agents + status)\n- `start` (launches an agent into `tmux`)\n- `status` (quick runtime + heartbeat snapshot)\n- `monitor` (captures output from the tmux pane)\n- `stop` (kills the agent's tmux session)\n\nWant an animated GIF instead? You can record it with tools like `termttogif` (or any terminal recorder) and replace `assets/demo.svg`.\n\n## Path \u0026 Repo Root Resolution\n\n- Repo root is resolved in this priority order: `$REPO_ROOT` → git superproject (submodule-safe) → git toplevel → parent-walk fallback.\n- `schedule sync` writes crontab entries that call the *installed* `main.py` absolute path (so cron keeps working regardless of where the skill is installed).\n\n## Skills Resolution\n\nWhen injecting agent skills into the system prompt, `agent-manager` searches for `SKILL.md` in the following locations (first match wins):\n\n1) `\u003crepo\u003e/.agent/skills/\u003cskill\u003e/SKILL.md`\n2) `~/.agent/skills/\u003cskill\u003e/SKILL.md`\n3) `\u003crepo\u003e/.claude/skills/\u003cskill\u003e/SKILL.md`\n4) `~/.claude/skills/\u003cskill\u003e/SKILL.md`\n\n## Documentation\n\nSee [agent-manager/SKILL.md](agent-manager/SKILL.md) for complete documentation.\n\nFor CLI refactor progress and migration notes, see [agent-manager/docs/cli-modularization-plan.md](agent-manager/docs/cli-modularization-plan.md).\nFor heartbeat serviceization notes, see [agent-manager/docs/heartbeat-serviceization.md](agent-manager/docs/heartbeat-serviceization.md).\n\nFor operational SOPs and failure handling checklists, see [agent-manager/docs/runbook-checklist.md](agent-manager/docs/runbook-checklist.md).\nFor heartbeat observability and SLO metrics, see [agent-manager/docs/heartbeat-observability.md](agent-manager/docs/heartbeat-observability.md).\nFor local team-chat skill mounting and team rollout steps, see [docs/team-chat-skill-install.md](docs/team-chat-skill-install.md).\n\n## Testing\n\n```bash\n# Full suite\npython3 -m unittest discover -s agent-manager/scripts/tests -p 'test_*.py' -v\n\n# Integration matrix suite (with flaky-control retries + artifacts)\npython3 agent-manager/scripts/tests/run_integration_suite.py \\\n  --attempts 2 \\\n  --pattern 'test_integration_*.py' \\\n  --artifact-dir .artifacts/integration\n```\n\n## Requirements\n\n- Python 3.x\n- tmux\n- Agents defined under `agents/` (supports `agents/EMP_0001.md` and `agents/EMP_0001/AGENTS.md`)\n\n## Codex Launcher Notes\n\nWhen using `launcher: codex` with cron schedules, `agent-manager` will best-effort auto-dismiss Codex's first-run/upgrade model selection prompt to keep scheduled jobs non-interactive.\n\n## Features\n\n- 🚀 Simple agent lifecycle management (start/stop/monitor)\n- 📅 Scheduled task execution via cron (`schedule list`, `schedule sync`, `schedule run`)\n- 💓 Heartbeat observability (`heartbeat trace --since/--until`, `heartbeat slo`)\n- 🔧 Installation-agnostic (works from any location)\n- 🎯 Zero dependencies beyond tmux + Python\n- 💡 Dynamic path resolution (submodule-safe repo root detection)\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffractalmind-ai%2Fagent-manager-skill","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffractalmind-ai%2Fagent-manager-skill","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffractalmind-ai%2Fagent-manager-skill/lists"}