A CLI tool for daily dev automation and AI skill integration.
Why Spark? Deterministic tasks (file scaffolding, mirror switching, config management) can be automated by CLI to save token cost. Spark also provides a CLI app backend for AI skills — so agents can call spark instead of burning LLM tokens on repetitive operations.
Most code is AI-generated, all inspired by real daily workflows.
| Layer | Technology |
|---|---|
| Language | Go 1.25 |
| CLI Framework | Cobra |
| Config | Viper (~/.spark.yaml) |
| TUI | PTerm + Bubble Tea |
| Testing | Ginkgo / Gomega (BDD) |
| Docs | docmd |
main.go → cmd.Execute()
├── cmd/ Cobra command definitions
│ ├── git/ Git repo management commands
│ ├── magic/ System utilities (DNS, mirrors)
│ ├── script/ Script management commands
│ ├── agent.go AI agent config management
│ ├── agent_profile.go Agent profile templates
│ └── task.go Task workflow commands
├── internal/ Business logic by domain
│ ├── agent/ AI agent config (Claude Code, Codex, Kimi, GLM)
│ ├── config/ Config loading & migration
│ ├── git/ Core git operations
│ ├── github/ GitHub API interactions
│ ├── mono/ Mono-repo & submodule management
│ ├── script/ Script discovery & execution
│ ├── task/ Task dispatch/sync/feature CRUD
│ └── tui/ Shared terminal UI components
├── docs/ Documentation (docmd)
└── scripts/ User-defined automation scripts
make build # Build + install to ~/.local/bin/spark
make build-linux # Cross-compile Linux amd64
make build-darwin # Cross-compile macOS amd64
make test # Run all unit tests
make test-bdd # BDD-style tests (Ginkgo)
make lint # Static analysis (go vet)
make clean # Remove binaryRun a single test:
go test ./internal/git/... -v -run TestFunctionName| Flag | Description |
|---|---|
--config |
Config file (default ~/.spark.yaml) |
-p, --path |
Directory containing git repos |
| Command | Description |
|---|---|
spark git update |
Update all repos to latest version |
spark git create -n <name> -o <path> |
Create mono-repo with submodules |
spark git sync <mono-path> |
Sync all submodules to latest |
spark git gitcode [-p <path>] |
Add Gitcode remote to repos |
spark git config [--username --email] |
Configure git user for repo |
spark git url [repo-path] |
Get remote URL of repository |
spark git batch-clone <account> [--ssh] [--include] [--exclude] [-o <dir>] |
Clone all repos from GitHub org/user |
spark git update-org-status <org> [--dry-run] [--update-dot-github] [--section <name>] |
Update org README with repo list |
| Command | Description |
|---|---|
spark agent list |
List supported agents |
spark agent view <agent> |
View agent config files |
spark agent edit <agent> [index] |
Edit agent config in editor |
spark agent reset <agent> |
Reset agent config |
spark agent profile list |
List config profiles |
spark agent profile add <name> -t <type> |
Add new profile |
spark agent profile show <name> |
Show profile config |
spark agent profile edit <name> [index] |
Edit profile config |
spark agent use <profile> [-p <dir>] |
Apply profile to project |
spark agent current [-p <dir>] |
Show active profile |
Supported agents: claude-code, codex, kimi, glm
| Command | Description |
|---|---|
spark task init |
Initialize task directory structure |
spark task list |
List all tasks and features |
spark task create <name> [--content <text>] |
Create feature file |
spark task delete <name> [--force] |
Delete feature file |
spark task impl <name> |
Implement feature via kimi CLI |
spark task dispatch [name] [--dest <path>] |
Dispatch task to workspace |
spark task sync [name] [--work-path <path>] |
Sync task back |
Flags: --task-dir, --owner, --work-dir, --tui
| Command | Description |
|---|---|
spark magic flush-dns |
Flush DNS cache (macOS/Windows/Linux) |
| Command | Targets |
|---|---|
spark magic pip [list|use|current] |
Python pip mirrors (tsinghua, aliyun, douban, ustc, tencent) |
spark magic go [list|use|current] |
Go module proxy (aliyun, tsinghua, goproxy, ustc, nju) |
spark magic node [list|use|current] |
npm registry (taobao, aliyun, tencent, huawei, ustc) |
| Command | Description |
|---|---|
spark script list |
List available scripts |
spark script run <name> [args...] |
Execute a script |
Scripts sourced from ~/.spark.yaml (spark.scripts) and scripts/ directory.
Config file: ~/.spark.yaml
repo-path:
- /path/to/repos
git:
username: your-name
email: your@email.com
task_dir: /path/to/tasks
github_owner: your-username
work_dir: ./workspaceOnline docs: https://variableway.github.io/spark-cli/
| Path | Content |
|---|---|
| docs/usage/ | Per-command usage guides |
| docs/analysis/ | Architecture & RFC documents |
| AGENTS.md | AI agent integration guide |
| CLAUDE.md | Claude Code development guide |