rtk-ai/rtk

Mise (mise.jdx.dev) as unified DevEx entrypoint: one command to rule all workflows and tools

Open

#749 opened on Mar 20, 2026

View on GitHub
 (2 comments) (0 reactions) (0 assignees)Rust (2,914 forks)batch import
area:cieffort-mediumenhancementhelp wantedpriority:low

Repository metrics

Stars
 (48,085 stars)
PR merge metrics
 (Avg merge 11d 1h) (45 merged PRs in 30d)

Description

Why

Contributing to RTK today requires knowing which raw cargo commands to run, in which order, with which flags. Nothing tells you at a glance what the full quality gate looks like, how to benchmark startup time, or how to build a release package. This knowledge lives in CLAUDE.md, the README, scattered bash scripts — but never in one authoritative, executable place.

The result:

  • New contributors spend time figuring out "what do I run to check my changes are clean?"
  • The pre-commit gate (cargo fmt --all && cargo clippy --all-targets && cargo test) is copy-pasted in docs but not surfaced as a runnable command
  • Benchmarking (hyperfine ...) and packaging (cargo deb, cargo generate-rpm) are undiscoverable unless you read deep into the README

This friction adds up. Every time a contributor asks "how do I run the linter?" or "what's the release command?", the answer requires reading docs instead of typing mise tasks.


How

This adds a .mise/config.toml that defines 23 tasks covering the full contributor workflow — build, test, lint, install, benchmark, package, and analytics — with dependencies, aliases, and human-readable descriptions.

mise tasks
build          Build debug binary
build:release  Build optimized binary (alias: br)
check          Fast type-check without linking (alias: c)
ci             Full quality gate: fmt:check + lint + test (alias: qa)
dev            Local gate: fmt then lint + test (alias: d)
fmt            Format all source files
fmt:check      Check formatting without modifying files
lint           Run clippy with pedantic + nursery lints
test           Run unit tests (alias: t)
test:smoke     Smoke tests against installed binary
test:verbose   Run tests with stdout
test:watch     Re-run tests on file changes
bench          Full performance benchmark suite
bench:startup  Quick startup time check vs raw command
install        Install into cargo bin
install:local  Install binary directly into PATH
gain           Token savings analytics
gain:history   Command history with savings per command
package:deb    Build Debian package
package:rpm    Build RPM package
clean          Remove build artifacts
check:install  Verify rtk is correctly installed and routed
docs:validate  Validate documentation accuracy

Key design choices:

  • No new tooling required for existing workflowsmise run test just calls cargo test. Raw cargo commands still work unchanged.
  • Task dependenciesmise run ci runs fmt:checklinttest in the right order automatically.
  • Source/output tracking — mise skips tasks when inputs haven't changed.
  • Aliasesmise run qa, mise run d, mise run t for frequent commands.
  • Rust version pinning[tools] section pins rust = "stable" with rustfmt and clippy components, so mise install bootstraps a contributor's environment in one command.

Additionally, a src/filters/mise.toml TOML filter strips mise installation noise (Downloading, Extracting, Installing lines) so rtk mise run ... stays token-efficient in LLM-assisted workflows.

A working implementation is available on branch devex/alignment-claude-hook.

Contributor guide