Something went wrong. Try again.
Scaffolds custom tools for a devenv environment
Something went wrong. Try again.
Files
- Shell 83%
- Nix 17%
README.md
# devkit
Shared [devenv](https://devenv.sh) module: my personal dev tools (`bug`,
`secrets`, `local-code-review`) and a jujutsu toolchain.
Importing devkit keeps every project's toolchain identical and lets a single edit
here propagate to all of them. Shell-side helpers (prompt indicator, nested-shell
warning) live in `fish/` and are installed once per machine.
## Use it in a project
devenv.yaml:
```yaml
inputs:
nixpkgs:
url: github:cachix/devenv-nixpkgs/rolling
devkit:
url: git+https://knot.rtw.run/rtw.run/devkit
imports:
- devkit
```
That's the whole wiring. devkit pins the tools (`bug`, `secrets`,
`local-code-review`) in its own `flake.lock` and hands them to the project
through the `devkit` input, so a project declares no tool inputs of its own
and its `devenv.lock` records them as devkit's. (devenv#2205: an imported
input's devenv.yaml isn't evaluated, which is why the pins live in devkit's
flake, not its devenv.yaml.) A project's own `devenv.nix` only needs its
project-specific packages/env.
To try an unreleased tool in one project, declare that tool's input in the
project's devenv.yaml: a project-level input wins over devkit's pin. Disable
a tool with, e.g., `devkit.bug.enable = false;` (used by a project that ships
its own wrapper, like sovrn).
### bug agent skill
When `bug` is enabled, entering the shell copies the `SKILL.md` shipped with
the pinned `bug` package to `~/.agents/skills/working-with-bug/` (Claude) and
`~/.agents/skills/superpowers/working-with-bug/` (OpenCode with superpowers).
The file is rewritten only when it differs, so `devenv update bug` followed by
the next `devenv shell` is all it takes to update the skill. It is a copy, not
a symlink, so garbage collection can't leave it dangling. Turn it off with
`devkit.bug.skill.enable = false;` or change targets with
`devkit.bug.skill.dirs`. Pins of `bug` older than v1.3.0 don't ship the
skill and are skipped.
### jj: bugs sync with the code; no Claude attribution; no git worktrees
devkit puts a `jj` wrapper (`jj/jj`) a…