Go CLI for creating repos with Git, Beads, UBS.
Open PowerShell as Administrator:
cd "C:\Users\davef\Documents\Projects\Claude\Vibe Coding\tooling\maajise\maajise"
.\install.ps1Restart terminal, use anywhere: maajise my-project
If you have multiple Maajise installations (e.g., in both Program Files and AppData), use the update script:
.\update-installations.ps1To remove duplicate installations and keep only one:
Remove-Item -Path "C:\Users\$env:USERNAME\AppData\Local\Programs\Maajise" -Recurse -ForceTo check which Maajise is in your PATH:
where maajise# Creates my-project/my-project/ structure
maajise my-project# Run inside existing folder
cd existing-project
maajise --in-place# Won't overwrite existing files
maajise --in-place --no-overwrite# Skip interactive prompts
maajise my-project --skip-remote
# Skip Git initialization
maajise --in-place --skip-git
# Skip Beads
maajise my-project --skip-beads
# Skip initial commit
maajise my-project --skip-commitmaajise my-project -v--in-place Initialize current directory (no nested folders)
--no-overwrite Skip files that already exist
--template=<name> Project template (base, typescript, python, rust, php, go)
--skip-git Don't initialize Git
--skip-beads Don't initialize Beads
--skip-commit Don't create initial commit
--skip-remote Don't prompt for remote setup
-v, --verbose Verbose output
-h, --help Show help
Maajise supports multiple project templates:
| Template | Description |
|---|---|
| base | Language-agnostic project structure |
| typescript | TypeScript with npm/package.json |
| python | Python with pip/pyproject.toml |
| rust | Rust with Cargo |
| php | PHP with Composer |
| go | Go with go.mod |
# List available templates
maajise templates
# Create project with specific template
maajise my-app --template=typescript
maajise my-service --template=python
maajise my-tool --template=rust
maajise my-project --template=php
maajise my-cli --template=go# Standard new project (default template)
maajise awesome-app
# TypeScript project
maajise my-app --template=typescript
# Python service
maajise my-service --template=python
# Rust CLI tool
maajise my-tool --template=rust
# Initialize maajise itself
cd maajise
maajise --in-place --no-overwrite
# Quick setup without prompts
maajise test-project --skip-remote --skip-beads
# Maximum control
maajise my-app --no-overwrite --skip-commit -vgitbd(Beads) - optional with--skip-beadsubs- optional for scanning
Maajise can be configured via ~/.maajiserc (YAML format):
# Default values for init command
defaults:
template: typescript
git_name: Your Name
git_email: [email protected]
skip_remote: true
main_branch: main
# Template variables (used in README, LICENSE, etc.)
variables:
author: Your Name
email: [email protected]
year: "2025"
license: MIT
github: yourusername
# Custom templates directory (default: ~/.maajise/templates/)
templates_dir: ~/.maajise/templatesTemplates can include variables that are replaced during project creation:
{{.ProjectName}}- Project name{{.Author}}- From config or empty{{.Email}}- From config or empty{{.Year}}- Current year (default) or from config{{.License}}- From config or "MIT"{{.GitHub}}- From config or empty
Create custom templates in ~/.maajise/templates/ as YAML files:
# ~/.maajise/templates/my-template.yaml
name: my-template
description: My custom project template
dependencies:
- git
- node
files:
.gitignore: |
node_modules/
.env
README.md: |
# {{.ProjectName}}
Created by {{.Author}}
package.json: |
{
"name": "{{.ProjectName}}",
"version": "1.0.0"
}Use with: maajise init my-project --template=my-template
| Command | Description |
|---|---|
| init | Initialize a new project |
| add | Add files or tooling to existing project |
| update | Update configuration files |
| validate | Validate project setup |
| status | Show quick project status |
| templates | List available templates |
| doctor | Check system dependencies |
| help | Show help |
| version | Show version |
Initialize a new project with Git, Beads, and configuration files.
maajise init <project-name> [flags]
maajise <project-name> # shorthand
Flags:
--template=<name> Project template (default: base)
--in-place Initialize in current directory
--no-overwrite Don't overwrite existing files
--skip-git Skip Git initialization
--skip-beads Skip Beads initialization
--skip-commit Skip initial commit
--skip-remote Skip remote setup prompt
--skip-git-user Skip Git user configuration
--git-name=<name> Git user.name (non-interactive)
--git-email=<email> Git user.email (non-interactive)
--dry-run Preview what would be created without making changes
--interactive, -i Interactive mode with prompts
-v, --verbose Verbose output
Examples:
maajise init my-project
maajise init my-app --template=typescript
maajise init my-project --dry-run
maajise init --interactive
maajise init --in-place --template=pythonAdd files or tooling to an existing project.
maajise add <item> [flags]
Tooling:
git Initialize Git repository
beads Initialize Beads issue tracking
ubs Add .ubsignore file
Files:
.gitignore Add .gitignore from template
.ubsignore Add .ubsignore from template
readme Add README.md from template
Flags:
--force Overwrite existing files
--template=<name> Template for file content (auto-detects if not specified)
--dry-run Preview without making changes
-v, --verbose Verbose output
Examples:
maajise add git
maajise add beads
maajise add .gitignore
maajise add .gitignore --template=typescript
maajise add readme --force
maajise add --dry-run gitCheck system dependencies and configuration.
maajise doctor [flags]
Flags:
-v, --verbose Verbose output (show error details)
Examples:
maajise doctor
maajise doctor --verboseReports on:
- Required dependencies:
git,bd(Beads) - Optional dependencies:
ubs,go - Configuration file status
- Custom templates directory
Update configuration files in an existing project.
maajise update [flags] [files...]
Flags:
--force Overwrite existing files
--template=<name> Template to use (auto-detects if not specified)
--dry-run Show what would be updated
-v, --verbose Verbose output
Examples:
maajise update # Update all files (skip existing)
maajise update --force # Update all files (overwrite)
maajise update .gitignore # Update specific file
maajise update --dry-run # Preview changesValidate project setup and configuration.
maajise validate [flags]
Flags:
--strict Treat warnings as failures
-v, --verbose Verbose output
Examples:
maajise validate
maajise validate --strict
maajise validate --verboseShow quick project status.
maajise status
Examples:
maajise statusList available project templates.
maajise templates# Create new project
maajise init my-project --template=typescript
# Check project health
maajise validate
# Quick status
maajise status
# Update config files
maajise update --force
# List templates
maajise templates.git/- Git repo.beads/- Issue tracking.ubsignore- UBS scanner config.gitignore- Git ignoresREADME.md- Template