Skip to content

Latest commit

 

History

History
80 lines (56 loc) · 2.48 KB

File metadata and controls

80 lines (56 loc) · 2.48 KB

Contributing to amux

Thanks for your interest in improving amux.

This project is currently a small CLI being prepared for broader open-source use. Contributions are welcome, but please keep changes small and aligned with the existing behavior unless an issue discusses a larger design change.

Development setup

Requirements:

  • Go, matching the version in go.mod
  • tmux, for end-to-end/manual workflow checks
  • Amp CLI, for manual checks that create or continue Amp threads

Build the CLI:

make build

Run tests:

go test ./...

Check formatting:

gofmt -l .

CI runs formatting, tests, a build, and a Destructive Command Guard scan.

Develop the bundled skills

Normal users install published skills globally with skills as documented in the README. Core lifecycle is skills/amux. Experimental Tycho, Claude, and Pi routes are separate packages under skills/amux-tycho, skills/amux-claude, and skills/amux-pi. Contributors may symlink this checkout so Amp loads the worktree copies:

ln -sfn "$PWD/skills/amux" ~/.agents/skills/amux
ln -sfn "$PWD/skills/amux-tycho" ~/.agents/skills/amux-tycho
ln -sfn "$PWD/skills/amux-claude" ~/.agents/skills/amux-claude
ln -sfn "$PWD/skills/amux-pi" ~/.agents/skills/amux-pi

Reload Amp after changing the links. Run the skill consistency tests with go test ./scripts (and experimental helper tests under each skill's experimental/... directory). They also run as part of go test ./.... Do not document these development symlinks as the primary installation path.

Pull request guidelines

  • Keep pull requests focused on one behavior or documentation improvement.
  • Add or update tests when changing CLI behavior, config parsing, tmux command construction, or release/build logic.
  • Prefer existing package boundaries and helper patterns over new abstractions.
  • Avoid committing local binaries, personal workspace config, real Amp thread URLs, or machine-specific paths.
  • Update README.md when user-facing behavior changes.

Manual testing tips

Use a temporary config while experimenting:

tmp=$(mktemp -d)
amux --config-dir "$tmp" worker list --all

Prefer --dry-run before mutating tmux or workspace config:

amux --dry-run launch --workspace demo
amux --dry-run worker adopt --thread T-example --workspace demo --window worker --workdir ~/Code/demo

Do not use real private thread IDs in tests or examples. Use placeholders such as T-example or https://ampcode.com/threads/T-example.