YOUR TOOLCHAIN DESERVES A HOME
Stop setting up the same tools in every repository.
Define them once. Inherit them everywhere.
Linters, formatters, git hooks, your own scripts and the runtimes they need — in one datamitsu.config.js you carry from project to project.

brew install datamitsu/tap/datamitsuOne Go binary. No Node.js required. Your repository supplies the config. Install guide ↗
SOUND FAMILIAR?
The same setup, again,
in every new repository.
By the next project, a plugin has changed, the old config is stale, and you are piecing it all together again. The only complete picture is in the head of whoever set it up.
datamitsu.config.jsREADME.md: “first, install these fourteen things…”; Makefile: lint: / fmt: / check:; .github/workflows/ci.yml: setup-go · setup-uv · caches; .pre-commit-config.yaml: hook versions, again; .tool-versions: one runtime pin per language; pyproject.toml: linter versions mixed into dependencies; scripts/setup.sh: brew install ×14 converge into datamitsu.config.js.
A real configuration. Every tool pinned to a version, verified by hash before it runs. Hover one. Follow a runtime.
Any stack. One binary.
Native binary75 apps
- ruff
- golangci-lint
- shfmt
Node.js20 apps
- eslint
- oxlint
- prettier
Python11 apps
- yamllint
- mypy
- semgrep
JVM3 apps
- ktfmt
- ktlint
- openapi-generator
Go1 app
- govulncheck
Shell1 app
A Go binary. No Node.js on the machine. Runtimes are pinned per tool and never touch the system ones.
Your own scripts ship the same way — packed into the config, delivered with their runtime, run like any other tool.
The binary is the machinery. The config is your decisions.
Define once.Inherit shared defaults. Keep project-specific changes in a local layer.
Upgrade on your terms.Pin versions that agree with each other. Each repository adopts an update when you change its pin.
One evening of tuning. Every repository benefits.Get a linter right once. Every repository that inherits the config gets it right too.
SEE IT AT WORK
Three runs.
One configuration.
Recorded in a repository that inherits a datamitsu config: the first run that installs everything, the same command again, and a narrowed run that says what it will not do.
WHERE THINGS STAND
Alpha. The config API is not stable yet.
One optional reference wrapper. You can write your own config.
Not a task runner or a runtime manager for application code.