{"id":44585566,"url":"https://github.com/musher-dev/mush","last_synced_at":"2026-04-01T20:24:33.865Z","repository":{"id":337671765,"uuid":"1153102652","full_name":"musher-dev/mush","owner":"musher-dev","description":"Portable agent bundles for local coding agents.","archived":false,"fork":false,"pushed_at":"2026-03-28T13:46:42.000Z","size":2510,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-28T16:36:26.655Z","etag":null,"topics":["agent-runner","agentic-ai","ai","ai-agents","ai-coding-agent","automation","bundle-manager","claude","claude-code","cli","cobra","coding-agents","developer-tools","devtools","go","golang","package-manager"],"latest_commit_sha":null,"homepage":"https://musher.dev/","language":"Go","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/musher-dev.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/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-08T22:30:42.000Z","updated_at":"2026-03-28T13:46:36.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/musher-dev/mush","commit_stats":null,"previous_names":["musher-dev/mush"],"tags_count":47,"template":false,"template_full_name":null,"purl":"pkg:github/musher-dev/mush","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/musher-dev%2Fmush","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/musher-dev%2Fmush/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/musher-dev%2Fmush/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/musher-dev%2Fmush/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/musher-dev","download_url":"https://codeload.github.com/musher-dev/mush/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/musher-dev%2Fmush/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31291560,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T13:12:26.723Z","status":"ssl_error","status_checked_at":"2026-04-01T13:12:25.102Z","response_time":53,"last_error":"SSL_read: 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-runner","agentic-ai","ai","ai-agents","ai-coding-agent","automation","bundle-manager","claude","claude-code","cli","cobra","coding-agents","developer-tools","devtools","go","golang","package-manager"],"created_at":"2026-02-14T06:05:04.860Z","updated_at":"2026-04-01T20:24:33.857Z","avatar_url":"https://github.com/musher-dev.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/musher-dev/brand/main/dist/logo/svg/musher-logo-mark-light.svg\" /\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://raw.githubusercontent.com/musher-dev/brand/main/dist/logo/svg/musher-logo-mark-dark.svg\" /\u003e\n    \u003cimg alt=\"Mush\" src=\"https://raw.githubusercontent.com/musher-dev/brand/main/dist/logo/svg/musher-logo-mark-dark.svg\" height=\"80\" /\u003e\n  \u003c/picture\u003e\n  \u003ch3\u003ePortable agent bundles for local coding agents.\u003c/h3\u003e\n\n  \u003ca href=\"https://github.com/musher-dev/mush/actions/workflows/ci.yml\"\u003e\u003cimg src=\"https://github.com/musher-dev/mush/actions/workflows/ci.yml/badge.svg?branch=main\" alt=\"CI\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/musher-dev/mush/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/musher-dev/mush\" alt=\"Release\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://go.dev/\"\u003e\u003cimg src=\"https://img.shields.io/github/go-mod/go-version/musher-dev/mush\" alt=\"Go\" /\u003e\u003c/a\u003e\n  \u003ca href=\"./LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/github/license/musher-dev/mush\" alt=\"License\" /\u003e\u003c/a\u003e\n\n  \u003cp\u003e\n    \u003ca href=\"https://docs.musher.dev\"\u003eDocumentation\u003c/a\u003e ·\n    \u003ca href=\"https://hub.musher.dev\"\u003eMusher Hub\u003c/a\u003e ·\n    \u003ca href=\"https://discord.gg/SaVMzMgX2c\"\u003eDiscord\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n![Mush CLI Demo](docs/vhs/gif/demo.gif)\n\n- Browse, load, and install versioned agent bundles from the Musher Hub\n- Run bundles ephemerally or install assets into your project\n- Interactive TUI for discovery, download, and harness selection\n- Built-in diagnostics, self-update, and shell completions\n- Remote job runner for platform-driven execution (advanced)\n\n## Installation\n\n```bash\ncurl -fsSL https://mush.musher.dev | sh\n```\n\n\u003cdetails\u003e\n\u003csummary\u003eOther install methods\u003c/summary\u003e\n\n```bash\n# Install a specific version\ncurl -fsSL https://mush.musher.dev | sh -s -- --version \u003cversion\u003e\n\n# Install and also install tmux if missing\ncurl -fsSL https://mush.musher.dev | sh -s -- --install-tmux\n\n# From source\ngo install github.com/musher-dev/mush/cmd/mush@latest\n```\n\n\u003c/details\u003e\n\nInstaller telemetry controls:\n\n- `MUSH_INSTALL_TRACKING=0` disables install tracking.\n- `MUSH_INSTALL_API_BASE_URL` overrides the telemetry/API host (default: `https://api.musher.dev`).\n- `MUSH_INSTALL_TRACKING_TIMEOUT` sets tracking request timeout in seconds (default: `2`).\n- `MUSH_INSTALL_DEVICE_ID` provides a custom stable device seed (hashed before sending).\n\n## Quick Start\n\n```bash\nmush bundle load acme/my-kit              # Ephemeral session\nmush bundle install acme/my-kit --harness claude  # Install into project\nmush bundle list                           # See cached/installed\n```\n\nBrowse public bundles on [Musher Hub](https://hub.musher.dev). Run `mush doctor` to verify your setup.\n\nBundle references use `namespace/slug`. The namespace may be an organization handle or a personal username.\n\n## Commands\n\nMush uses noun-verb command structure. Run `mush \u003ccommand\u003e --help` for details.\n\n### Bundles\n\n```\nmush bundle load \u003cnamespace/slug\u003e[:\u003cversion\u003e]        Load a bundle into an ephemeral session\nmush bundle install \u003cnamespace/slug\u003e[:\u003cversion\u003e]     Install bundle assets into the current project\nmush bundle list               List local bundle cache and installed bundles\nmush bundle info \u003cnamespace/slug\u003e[:\u003cversion\u003e]        Show local details for a bundle reference\nmush bundle uninstall \u003cnamespace/slug\u003e[:\u003cversion\u003e]   Remove installed bundle assets\n```\n\n### Account\n\n```\nmush auth login                Authenticate with your API key\nmush auth status               Show authentication status\nmush auth logout               Clear stored credentials\n\nmush config list               List configuration\nmush config get \u003ckey\u003e          Get configuration value\nmush config set \u003ckey\u003e \u003cvalue\u003e  Set configuration value\n```\n\n### History\n\n```\nmush history list              List stored transcript sessions\nmush history view \u003cid\u003e         View transcript events for a session\nmush history prune             Delete sessions older than a duration\n```\n\n### Setup\n\n```\nmush init                      Guided onboarding wizard\nmush doctor                    Run diagnostic checks\nmush update                    Update to the latest version\nmush version                   Show version information\nmush completion \u003cshell\u003e        Generate shell completion scripts\n```\n\n### Advanced: Remote Runner\n\n\u003e The remote runner connects dev machines to the Musher job queue for platform-driven execution.\n\n```\nmush worker start                      Start the worker and process jobs\nmush worker start --habitat \u003cslug\u003e     Connect to specific habitat\nmush worker start --harness \u003ctype\u003e     Use a specific harness (claude or bash)\nmush worker start --dry-run            Verify connection without claiming jobs\n\nmush habitat list              List available habitats\n```\n\n## Configuration\n\nMush looks for configuration in this order (highest priority first):\n\n1. **CLI flags** (`--api-url`, global)\n2. **Environment variables** (`MUSH_API_KEY`, `MUSH_API_URL`, `MUSH_*`)\n3. **OS Keyring** (credentials only)\n4. **Config file** (`\u003cuser config dir\u003e/mush/config.yaml`)\n5. **Built-in defaults**\n\n```yaml\napi:\n  url: https://api.musher.dev\nkeybindings:\n  up: [up, k]\n  down: [down, j]\n  status: [\",\"]\nworker:\n  poll_interval: 30\n  heartbeat_interval: 30\n```\n\nSee [Configuration and Data Storage](docs/configuration.md) for all config keys, environment variables, file locations, credential storage details, and global flags.\n\n### Global flags\n\nUse `--api-url` to override the platform API endpoint for a single command invocation:\n\n```bash\nmush --api-url https://api.staging.musher.dev worker start --dry-run\nmush --api-url http://localhost:8080 doctor\n```\n\n`--api-url` takes precedence over `MUSH_API_URL` and `api.url` from config for that process.\n\n`--api-key` is not a global flag. It is available as `mush auth login --api-key ...`, and `MUSH_API_KEY` is preferred for non-interactive usage.\n\nFor enterprise TLS interception/proxy environments, set `MUSH_NETWORK_CA_CERT_FILE` to a PEM CA bundle trusted by your organization.\n\n## Contributing\n\nSee [CONTRIBUTING.md](./.github/CONTRIBUTING.md) for development setup, code style, and testing.\n\n## License\n\nMIT License — Copyright (c) 2026 musher-dev. See [LICENSE](./LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmusher-dev%2Fmush","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmusher-dev%2Fmush","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmusher-dev%2Fmush/lists"}