Contributing
July 12, 2026 ยท View on GitHub
Thank you for considering contributing to snips.sh! We welcome contributions from anyone, whether it's a bug report, a feature request, code improvements, or documentation updates.
Issues and Questions
Please use Issues to report bugs and feature enhancements. For any questions, discussions or general feedback, please use the Discussions.
Local Development
Development Toolchain
This repository uses mise to install and activate the pinned versions of Go, just, and the other development tools declared in mise.toml.
Install mise using one of its supported installation methods.
You can confirm which versions are active with:
mise current
Once mise is activated, use the development commands normally, such as just test. Without shell activation, run them through mise explicitly:
mise exec -- just test
After installing the toolchain, download the ONNX runtime required by local builds:
just vendor-onnxruntime
AI-powered file type detection is provided by magika-go, which embeds the model and links the downloaded ONNX runtime at build time.
Running Locally
To run locally:
just run
There are some nice defaults for local development. To see all the available configuration options, run:
just run -usage
Taking a look at the database.md and self-hosting.md documents may be useful too.
If you are working on the web UI, I recommend installing air so the application recompiles when the files change. Otherwise, the assets won't update while the binary is running.
Recipes
Run just to list the available development recipes. The main recipes are:
just build: builds the snips.sh binary; set OUTPUT to change its destination
just run: runs the application locally with the required ONNX runtime configuration
just lint: runs the Go and web linters
just migrate: wrapper for goose to manage database migrations (see database.md)
just mocks: generates mock interfaces using mockery for testing
just record-tape: runs vhs on docs/tapes/ to generate gifs for the README
just ssh-tmp: runs SSH with a new temporary public key, useful for testing new user access
just test: runs the tests with gotestsum
just vendor-onnxruntime: downloads and installs the ONNX runtime for the current platform