@tktco/berm
v0.20.0
Published
Interactive CLI to scaffold development environment templates
Readme
berm — a shaped, maintained buffer zone between structures. Like a berm bridges terrain, this tool bridges the gap between your template and your projects.
Why
Templates go stale the moment you scaffold them. Each project improves upon the original — better configs, new workflows, refined settings — but those improvements never flow back.
berm solves this with bi-directional sync:
init— Pull the latest template into your projectpush— Push your improvements back to the templatediff— See what's changed
Your template stays alive, fed by every project that uses it.
Usage
# Apply template to current directory
npx @tktco/berm
# Apply to a specific directory
npx @tktco/berm ./my-project
# Push your improvements back
npx @tktco/berm push -m "Add new workflow"
# Check what's different
npx @tktco/berm diffModules
Pick what you need:
- Root - MCP, mise, and other root-level config files
- DevContainer - VS Code DevContainer with Docker-in-Docker
- GitHub - GitHub Actions and labeler workflows
- Claude - Claude Code project settings
Commands
init
Apply dev environment template to your project
Apply dev environment template to your project (berm vdev)
USAGE `berm [OPTIONS] [DIR]`
ARGUMENTS
`DIR="."` Target directory
OPTIONS
`--force` Overwrite existing files
`-y, --yes` Select all modules (non-interactive mode)
`-m, --modules` Comma-separated module IDs to apply (non-interactive)
`-s, --overwrite-strategy` Overwrite strategy: overwrite, skip, or prompt (non-interactive)
`--from` Template source as owner/repo (e.g., my-org/my-templates)push
Push local changes to the template repository as a PR
Push local changes to the template repository as a PR (push)
USAGE `push [OPTIONS] [DIR]`
ARGUMENTS
`DIR="."` Project directory
OPTIONS
`-n, --dryRun` Preview only, don't create PR
`-m, --message` PR title
`-y, -f, --yes` Skip confirmation prompts
`--edit` Edit PR title and description before creating
`-p, --prepare` Generate a manifest file for AI-agent friendly workflow (no PR created)
`-e, --execute` Execute push using the manifest file generated by --prepare
`--files` Comma-separated file paths to include in PR (non-interactive file selection for AI agents)diff
Show differences between local and template
Show differences between local and template (diff)
USAGE `diff [OPTIONS] [DIR]`
ARGUMENTS
`DIR="."` Project directory
OPTIONS
`-v, --verbose` Show detailed diffai-docs
Show documentation for AI coding agents
Show documentation for AI coding agents (ai-docs)
USAGE `ai-docs `For AI Agents
AI coding agents can use the non-interactive workflow:
# 1. Generate manifest file
npx @tktco/berm push --prepare
# 2. Edit .devenv-push-manifest.yaml to select files and set PR details
# 3. Create PR from manifest
npx @tktco/berm push --executeFor detailed documentation, run:
npx @tktco/berm ai-docsWhat You Get
Files generated based on selected modules:
- Root (
./) — MCP, mise, and other root-level config files .devcontainer/— VS Code DevContainer with Docker-in-Docker.github/— GitHub Actions and labeler workflows.claude/— Claude Code project settings
See
.devenv/modules.jsoncfor the full list of tracked file patterns.
Contributing
See CONTRIBUTING.md.
License
MIT License © tktcorporation
