Dear Nim community,
After a longer break, I have restarted my work with Nim with some experiments into vibe coding.
My first attempt in this direction is a build tool called bau (short for "Baumeister" - build master). After a few evenings of work, I got to a first working state and would be interested in your feedback so I have a chance to either shelve it or develop it into something useful.
The project is hosted at https://github.com/bitstormFA/bau and can be installed with 'nimble install bau'.
Some features worth metioning are:
For all the brave explorers looking into this, bau version 0.5.1 now has extended functionality in the MCP server and assists in setting up MCP and a bau skill in a local project with 'bau mcp setup --all'.
The architecture documentation is now much cleaner and bau has been tested in a large (yet unpublished) project where it performs well.
If you do any experiments, please give me your feedback.
| MCP tool | Task | Corresponding CLI command |
|---|---|---|
| bau_build | Compile target(s) | bau build [target] [--all-targets] |
| bau_run | Build and run a binary | bau run [target] -- [args...] |
| bau_test | Run the Test Plan | bau test [filter] |
| bau_check | Type-check target(s) | bau check [target] [--all-targets] |
| bau_doc | Generate docs | bau doc |
| bau_clean | Remove Bau outputs | bau clean |
| bau_install | Install/update/remove binaries | bau install [target], bau update [target], bau uninstall [target] |
| bau_deps | Sync/lock/update/verify/vendor/patch deps | bau deps sync\|lock\|update\|verify\|vendor\|patch |
| bau_add | Add dependency | bau add <dep> |
| bau_remove | Remove dependency | bau remove <dep> |
| bau_deps_verify | Verify lock/dependency policy | bau deps verify |
| bau_tree | Show dependency tree | bau tree |
| bau_outdated | Show dependency status | bau outdated |
| bau_init | Initialize current/project dir | bau init [name] [--bin\|--lib] |
| bau_new | Create new project dir | bau new <path> [--bin\|--lib] |
| bau_convert | Convert Nimble project | bau convert [path\|file] [--dry-run] |
| bau_fmt | Format Nim sources | bau fmt |
| bau_lint | Validate style | bau lint |
| bau_ci | Run validation sequence | bau ci |
| bau_task | List/run custom tasks | bau task --list, bau task <name> |
| bau_cache | List/clean/explain task cache | bau cache list\|clean\|explain |
| bau_cache_explain | Explain one task cache key | bau cache explain <task> --json |
| bau_explain | Explain build freshness | bau explain |
| bau_compile_commands | Generate LSP compilation database | bau compile-commands |
| bau_metadata | Return project metadata | bau metadata --json |
| bau_graph | Return project graph | bau graph --format json |
| bau_query | Query deps/why | bau query deps <name>, bau query why <dep> |
| bau_affected | List/build/test/check affected work | bau affected list\|build\|test\|check --since <ref> |
| bau_tailor | Discover/write target declarations | bau tailor --check, bau tailor --write |
| bau_package | Package preflight/manifest | bau package --list, bau package --dry-run |
| bau_publish | Publication preflight/publish | bau publish --dry-run, bau publish |
| bau_bump | Bump package version | bau bump major\|minor\|patch |
| bau_ci_template | Write CI template | bau ci-template github\|gitlab |
| bau_env | Return build environment | bau env --json |
| bau_doctor | Check toolchain/project health | bau doctor |
| bau_shell_init | Add Bau bin dir to shell startup | bau shell-init [shell] |
| bau_mcp_setup | Register MCP + local skills | bau mcp setup --all\|--codex\|--claude\|--copilot |