Thank you for your interest in Shuttle.
git clone https://github.com/cailmdaley/shuttle
cd shuttle
mix deps.get && mix compile
make cliRequirements: Erlang/OTP 26+, Elixir 1.16+, Go 1.21+, the felt CLI.
mix test # Elixir suite
go test ./pkg/schema/... # Go schema testsCI runs mix compile --warnings-as-errors, mix test, and
go test ./pkg/schema/... on every PR.
Before opening a PR, verify:
mix compile --warnings-as-errorspassesmix testpassesgo test ./pkg/schema/...passes- No personal paths (
~/loom,/Users/...) in tracked files share/agents.jsonis the only agent registry — do not add a parallel registry in Elixir config or Go source
Shuttle is deliberately personal-scale: no auth model, no team conventions,
felt as the only work source. Contributions that add general-purpose
infrastructure are welcome; contributions that add a specific integration
layer belong in a fork or a Shuttle.WorkSource adapter once that
abstraction lands.
- Bugs: include steps to reproduce and the output of
bin/shuttle snapshot. - Features: describe the problem, not just the solution. A concrete use-case helps.
By contributing, you agree that your contributions will be licensed under the Apache License 2.0.