Skip to content

Latest commit

 

History

12 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vek

Personal developer CLI for common workflows.

Installation and version

go install github.com/vekio/vek/cmd/vek@latest
vek --version

The version comes from the module information embedded by Go. It identifies the installed binary and does not query GitHub for newer releases. Builds without a module version report dev.

For a local release build, you can supply a version explicitly:

go build -ldflags="-X github.com/vekio/vek/internal/cli/vek.Version=v0.1.3" -o bin/vek ./cmd/vek

Features

Gitignore generation

Build .gitignore files from selected templates in GitHub’s official github/gitignore collection.

Supported templates include Go, Node.js, Python, and Terraform/OpenTofu.

vek gitignore go
vek gitignore go node
vek gitignore terraform --print
vek gitignore list

SSH alias management

Create, inspect, list, and remove managed host entries in ~/.ssh/config. Existing unmanaged SSH configuration is left untouched.

vek ssh-alias add --alias prod --hostname example.com --user deploy
vek ssh-alias list
vek ssh-alias show prod
vek ssh-alias remove prod

Bonsai worktrees

Load the Fish integration in ~/.config/fish/config.fish to move into a worktree after cloning, starting a task, or checking out an existing branch:

vek bonsai init fish | source

Then use vek bonsai clone …​ to enter the source repository’s default branch worktree, or vek bonsai start feature/42 to enter a new task worktree. The integration defines a shell function named vek that changes directories after successful Bonsai commands. You can also use the shorthand bonsai …​. Use vek bonsai checkout feature/42 to enter its existing worktree or create a new feature-42 worktree. Existing worktrees keep their pending changes, including staged changes. It uses an existing local branch without fetching, preserving its commits and upstream. If no local branch exists, it fetches origin and creates a local branch tracking origin/feature/42. Local branches without an upstream track a matching cached origin branch when available. Pass --bare-only to clone without a worktree and enter the clone root. After confirmation, vek bonsai clean returns to main or the clone root. Task commands currently use origin/main as their base.

From a task worktree, vek bonsai submit pushes its committed branch to origin so you can open a pull request manually. After the squash merge, vek bonsai clean confirms with you before removing the local worktree and branch.

For Bash, load its integration in ~/.bashrc:

source <(vek bonsai init bash)
vek bonsai clone git@example.com:team/project.git
vek bonsai start feature/42
vek bonsai checkout fix/57

Development

The project uses mise for tool versions and just for development commands.

mise install
just check
just build

License

MIT

About

Personal developer CLI for common workflows

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages