dstack is a Rust CLI + Claude Code plugin providing persistent memory, multi-repo sync, VPS deployment, quality gates, and skills management. Published on crates.io as dstack-memory and dstack-cli.
- Run
cargo test --workspace— 31+ tests must pass - Run
cargo clippy --workspace— no new warnings - Check
dstack audit --pre-commit— answer all 5 questions
- MemoryProvider is an async trait with File and Eruka backends
- Config loads from
~/.config/dstack/config.tomlwith.envauto-loading - No hardcoded paths — all paths come from config (repos.root, skills_repo, env_file)
- Plugin format follows Claude Code spec: hooks.json with SessionStart/PreToolUse/PostToolUse
- Zola for static site, not marmite
- Don't add
/opt/paths anywhere in code or docs - Don't use
anytypes in TypeScript - Don't commit without running the quality gate
- Don't put secrets in tracked files — use
.env - Don't reference internal/client project names (like ehb) in public docs
When dispatching subagents for dstack work:
- Research agents: read code, grep patterns, check tests
- Implementation: always done in main context, not subagents
- Test after every change:
cargo test --workspace - Commit with:
git -c user.name="bkataru" -c user.email="baalateja.k@gmail.com" commit