Generic TUI installer engine for AI-assisted development kits. Create your own branded AI kit by editing one config file.
This is the engine, not a kit. It provides the interactive installer, theme system, profile presets, stack detection, and file management -- but ships no branding or opinionated content.
Content repos consume this engine as a git submodule. One company is already using this in production. They provide a kit.toml for branding, plus their own rules, skills, profiles, and registry. The engine reads kit.toml at runtime and adapts everything -- menus, file paths, watermarks, themes -- to your brand.
npx ai-kit-engine initAsks a few questions, generates everything.
curl -fsSL https://raw.githubusercontent.com/MagnusPladsen/ai-kit-engine/main/bootstrap.sh | bashSame scaffolding, no Node.js needed.
Clone ai-kit-engine-template and edit to taste.
All three methods produce the same result: a content repo with
kit.toml, wrapperinstall.sh, and the engine as a git submodule.
Then run:
bash install.sh- Interactive TUI -- color themes, animated menus, checkbox selection, fuzzy search, keyboard navigation
- 10 built-in themes + custom themes -- switch live with
t, define your own inkit.toml - Profile presets -- one-click configurations that pre-select rules, skills, and plugins
- Stack detection -- auto-detects React, .NET, Python, etc. from project files
- Team config sharing -- export selections to a config file teammates can import
- Fuzzy search -- press
/in any menu to filter items - Token budget estimates -- color-coded token counts for every rule and skill
- File safety -- backups before overwrites, watermark tracking, clean uninstall with restore
- Multi-tool support -- one install configures Claude, Gemini, Codex, OpenCode, Crush, Windsurf, Continue.dev, Copilot, and Cursor
- Global + project install modes -- project mode for repos, global mode for symlinked central config
- Manage mode -- re-run to add, remove, or update individual items
- Auto-update prompt -- detects new engine versions on startup, lets you update now or skip
- Dry run mode -- preview changes before writing anything
[branding]
name = "My AI Kit" # Full display name
short_name = "MY-KIT" # Uppercase short name
tagline = "..." # One-liner below the logo
watermark = "my-ai-kit" # File markers and backup suffixes
config_dir = ".my-kit" # Installed config directory name
ascii_art_file = "branding/ascii.txt" # Optional logo
[settings]
default_theme = "Tokyo Night" # Initial theme
[defaults] # Toggle engine defaults (all true by default)
rules = true
skills = true
registry = true
profiles = true
[[custom_themes]] # Define custom color themes
name = "My Brand"
lime = [200, 214, 75] # Primary accent
teal = [62, 205, 198] # Secondary accent
gold = [220, 200, 60] # Mid-tone accent
[stacks.react] # Technology stack definitions
name = "React / Next.js"
detect = ["package.json"] # Auto-detection file patterns
rules_dir = "react" # Subdirectory under rules/
[wrapper_files] # AI tool instruction files
items = ["CLAUDE.md", "COPILOT.md", "CURSOR.md", "CODEX.md", "GEMINI.md"]
[global_symlinks.claude] # Symlink targets for global installs
name = "Claude Code"
cli = "claude"
paths = [
{ src = "CLAUDE.md", dst = "~/.claude/CLAUDE.md" },
{ src = ".claude/rules/", dst = "~/.claude/rules/" },
]See docs/REFERENCE.md for the full field reference and defaults system details, or browse docs/examples/ for complete ready-to-copy kit setups (minimal, startup, enterprise, single-stack).
your-ai-kit/
├── kit.toml # Branding, stacks, themes, settings
├── install.sh # Thin wrapper (~10 lines)
├── branding/
│ └── ascii.txt # ASCII art logo (optional)
├── rules/
│ ├── shared/ # Rules installed for all stacks
│ ├── react/ # Stack-specific rules
│ └── dotnet/
├── skills/
│ ├── commit/
│ │ └── SKILL.md
│ └── create-pr/
│ └── SKILL.md
├── profiles/
│ ├── minimal.toml
│ └── full-stack.toml
├── registry.toml # Plugin & MCP server metadata
├── CLAUDE.md # AI tool instruction files
├── COPILOT.md
├── CURSOR.md
├── CODEX.md
├── GEMINI.md
├── AGENT.md
└── engine/ # AI Kit Engine (git submodule)
| Want to add... | How |
|---|---|
| A rule | Create rules/{category}/{name}.md |
| A skill | Create skills/{name}/SKILL.md |
| A plugin | Add [plugins.name] to registry.toml |
| An MCP server | Add [mcps.name] to registry.toml |
| A profile | Create profiles/{name}.toml |
| A custom theme | Add [[custom_themes]] to kit.toml |
| A stack | Add [stacks.key] to kit.toml |
name = "My Profile"
description = "What this profile includes"
stacks = ["react", "integrations"]
[rules]
items = ["commit-conventions", "security", "typescript"]
[skills]
items = ["commit", "create-pr", "review"]
[plugins]
items = ["superpowers", "coderabbit"][plugins.my-plugin]
tokens = 500
heavy = true # Optional: shown in yellow
stack = "react" # Optional: only shown for this stack
[mcps.my-server]
url = "https://example.com/mcp"
[mcps.context7]
url = "npx:-y:@upstash/context7-mcp" # npx with colon-separated args| Flag | Description |
|---|---|
--help, -h |
Show usage information |
--check |
Verify installed files are in sync with kit source |
--update |
Re-install, overwriting with latest |
--uninstall |
Remove kit files and restore backups |
--list |
Show installed rules, skills, and plugins |
--dry-run |
Preview without writing files |
bash install.sh --check
bash install.sh --dry-run
bash install.sh --uninstall- Never hardcode brand names -- all branding comes from
kit.toml - Never break backward compatibility -- existing
kit.tomlfiles must keep working - Every commit bumps
VERSION-- see.claude/rules/versioning.md - New
kit.tomlfields must have defaults -- the engine must work with a minimal config - Default content must be universally applicable -- no brand-specific references
cd ../my-ai-kit
bash install.sh --dry-run
bash install.sh
bash install.sh --check
bash install.sh --uninstallMIT