https://github.com/musher-dev/mush
Portable agent bundles for local coding agents.
https://github.com/musher-dev/mush
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
Last synced: about 2 months ago
JSON representation
Portable agent bundles for local coding agents.
- Host: GitHub
- URL: https://github.com/musher-dev/mush
- Owner: musher-dev
- License: mit
- Created: 2026-02-08T22:30:42.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-03-28T13:46:42.000Z (about 2 months ago)
- Last Synced: 2026-03-28T16:36:26.655Z (about 2 months ago)
- 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
- Language: Go
- Homepage: https://musher.dev/
- Size: 2.39 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Security: .github/SECURITY.md
Awesome Lists containing this project
README

- Browse, load, and install versioned agent bundles from the Musher Hub
- Run bundles ephemerally or install assets into your project
- Interactive TUI for discovery, download, and harness selection
- Built-in diagnostics, self-update, and shell completions
- Remote job runner for platform-driven execution (advanced)
## Installation
```bash
curl -fsSL https://mush.musher.dev | sh
```
Other install methods
```bash
# Install a specific version
curl -fsSL https://mush.musher.dev | sh -s -- --version
# Install and also install tmux if missing
curl -fsSL https://mush.musher.dev | sh -s -- --install-tmux
# From source
go install github.com/musher-dev/mush/cmd/mush@latest
```
Installer telemetry controls:
- `MUSH_INSTALL_TRACKING=0` disables install tracking.
- `MUSH_INSTALL_API_BASE_URL` overrides the telemetry/API host (default: `https://api.musher.dev`).
- `MUSH_INSTALL_TRACKING_TIMEOUT` sets tracking request timeout in seconds (default: `2`).
- `MUSH_INSTALL_DEVICE_ID` provides a custom stable device seed (hashed before sending).
## Quick Start
```bash
mush bundle load acme/my-kit # Ephemeral session
mush bundle install acme/my-kit --harness claude # Install into project
mush bundle list # See cached/installed
```
Browse public bundles on [Musher Hub](https://hub.musher.dev). Run `mush doctor` to verify your setup.
Bundle references use `namespace/slug`. The namespace may be an organization handle or a personal username.
## Commands
Mush uses noun-verb command structure. Run `mush --help` for details.
### Bundles
```
mush bundle load [:] Load a bundle into an ephemeral session
mush bundle install [:] Install bundle assets into the current project
mush bundle list List local bundle cache and installed bundles
mush bundle info [:] Show local details for a bundle reference
mush bundle uninstall [:] Remove installed bundle assets
```
### Account
```
mush auth login Authenticate with your API key
mush auth status Show authentication status
mush auth logout Clear stored credentials
mush config list List configuration
mush config get Get configuration value
mush config set Set configuration value
```
### History
```
mush history list List stored transcript sessions
mush history view View transcript events for a session
mush history prune Delete sessions older than a duration
```
### Setup
```
mush init Guided onboarding wizard
mush doctor Run diagnostic checks
mush update Update to the latest version
mush version Show version information
mush completion Generate shell completion scripts
```
### Advanced: Remote Runner
> The remote runner connects dev machines to the Musher job queue for platform-driven execution.
```
mush worker start Start the worker and process jobs
mush worker start --habitat Connect to specific habitat
mush worker start --harness Use a specific harness (claude or bash)
mush worker start --dry-run Verify connection without claiming jobs
mush habitat list List available habitats
```
## Configuration
Mush looks for configuration in this order (highest priority first):
1. **CLI flags** (`--api-url`, global)
2. **Environment variables** (`MUSH_API_KEY`, `MUSH_API_URL`, `MUSH_*`)
3. **OS Keyring** (credentials only)
4. **Config file** (`/mush/config.yaml`)
5. **Built-in defaults**
```yaml
api:
url: https://api.musher.dev
keybindings:
up: [up, k]
down: [down, j]
status: [","]
worker:
poll_interval: 30
heartbeat_interval: 30
```
See [Configuration and Data Storage](docs/configuration.md) for all config keys, environment variables, file locations, credential storage details, and global flags.
### Global flags
Use `--api-url` to override the platform API endpoint for a single command invocation:
```bash
mush --api-url https://api.staging.musher.dev worker start --dry-run
mush --api-url http://localhost:8080 doctor
```
`--api-url` takes precedence over `MUSH_API_URL` and `api.url` from config for that process.
`--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.
For enterprise TLS interception/proxy environments, set `MUSH_NETWORK_CA_CERT_FILE` to a PEM CA bundle trusted by your organization.
## Contributing
See [CONTRIBUTING.md](./.github/CONTRIBUTING.md) for development setup, code style, and testing.
## License
MIT License — Copyright (c) 2026 musher-dev. See [LICENSE](./LICENSE).