A high-performance CLI tool that acts as a digital "cord," seamlessly tying together Git development workflows, task management platforms, and LLM-powered automation.
kord-cli streamlines your development lifecycle by automating the repetitive tasks between Git, your task management system, and AI-powered tooling. From task initialization to release publication, kord handles the orchestration, reducing context switching and human error. Currently supports Notion as the task management adapter, with more platforms planned.
- π Automated Task Initiation β Fetch task details, auto-generate branch names, create branches with a single command
- βοΈ Intelligent Commit Messages β Generate contextual commit messages from staged changes
- π Pull Request Management β Auto-detect task context, create PRs with rich descriptions
- β Workflow Automation β Verify CI/CD status, merge PRs, update task statuses automatically
- π·οΈ Release Orchestration β Auto-detect version tags, generate release notes, draft releases
- π Platform Integration β Connect to Git, GitHub, and Notion (more task platforms coming soon)
- π€ LLM-Powered β Leverage AI for intelligent suggestions and automations
- π§ͺ TDD-Ready Test Setup β Unit and feature test scaffolding with
testifyassertions
# Clone the repository
git clone https://github.com/ashokbaruaakas/kord-cli.git
cd kord-cli
# Build the binary
go build -o kord-cli .
# Optionally, install to your PATH
sudo mv kord-cli /usr/local/bin/# Configure kord with your platforms (Git, task management, LLM)
kord setup
# Start work on a task
kord start TASK-123
# Write changes, then auto-generate and commit
git add .
kord commit
# Create and submit a pull request
kord submit
# After review and CI/CD passes, merge and finish
kord finish| Command | Purpose |
|---|---|
kord setup |
Interactive configuration wizard for platforms and credentials |
kord start <task-id> |
Initialize work on a task (branch creation, status updates) |
kord commit |
Generate and apply a commit message from staged changes |
kord submit |
Create and submit a pull request with auto-detected metadata |
kord finish |
Verify CI/CD status, merge PR, update task status |
kord release |
Create a release draft with auto-detected version and notes |
kord publish |
Finalize and publish release, update all connected platforms |
Runs an interactive wizard to connect kord with your platforms. Stores credentials and preferences in ~/.kord/config.json.
kord setupFetches task details from your task management platform, generates a descriptive branch name using LLM, creates and checks out the branch, and updates the task status to In Progress.
kord start PROJ-42
kord start PROJ-42 --branch-name my-custom-branchInspects staged changes, generates a concise and conventional commit message using LLM, and commits them.
git add .
kord commitDetects the current task from the active branch, creates a pull request with an auto-generated title and description, and submits it.
kord submit
kord submit --no-pr-draftChecks the latest PR for the current task, waits for all GitHub Actions to pass, merges the PR, and updates the task status to Done.
kord finishAuto-detects the next version tag, generates a developer changelog and a user-friendly release note using LLM, and creates a release draft on GitHub.
kord releasePublishes the latest release draft, syncs the release status to connected platforms, and marks related tasks as released.
kord publishkord-cli/
βββ main.go # Entry point
βββ cmd/
β βββ root.go # Root command definition
β βββ setup.go # kord setup subcommand
β βββ start.go # kord start subcommand
β βββ ... # Additional subcommands
βββ internal/
β βββ git/ # Git operations
β βββ taskmanager/ # Task platform integrations
β βββ llm/ # LLM integrations
β βββ config/ # Configuration management
βββ go.mod # Go module definition
βββ LICENSE # License file
Key Design Principles:
- Each subcommand lives in
cmd/<name>.go - External integrations are abstracted into
internal/packages for reusability and testability - Configuration is loaded from
~/.kord/config.jsonand environment variables - Commands return errors via
RunEfor proper Cobra error handling
kord stores its configuration at ~/.kord/config.json. This file is created and populated during kord setup. You can also override settings using environment variables.
// ~/.kord/config.json (example)
{
"git": {
"provider": "github",
"token": "<your-github-token>"
},
"task_manager": {
"provider": "notion",
"token": "<your-notion-integration-token>",
"database_id": "<your-notion-database-id>"
},
"llm": {
"provider": "openai",
"model": "gpt-4o",
"api_key": "<your-api-key>"
}
}Note: Never commit
~/.kord/config.jsonto version control. kord will never read credentials from the project directory.
- Root command scaffolding
- Baseline test setup (unit + feature tests)
-
kord setupβ Interactive configuration wizard -
kord startβ Task initialization automation -
kord commitβ Smart commit message generation
-
kord submitβ PR creation and submission -
kord finishβ Workflow completion and status updates - Support for additional task platforms (Jira, Linear, GitHub Issues)
-
kord releaseβ Release draft generation -
kord publishβ Release publication and synchronization - Advanced LLM features (release notes generation, context summarization)
- Go 1.26.2 or later
- Git
# Build the binary
go build -o kord-cli .
# Run the CLI
go run . <command>
# Run tests
go test ./...
# Run tests with coverage
go test ./... -coverThis project follows TDD and includes both unit and feature/integration tests. For full testing commands, watch-mode setup, conventions, and examples, see TESTING.md.
- Prefer
RunEoverRunfor proper error handling - Use
os.Exit(1)only inExecute(); subcommands return errors - Wrap external API calls with clear, specific error messages
- Log significant steps for user feedback
- Use flags for optional overrides (e.g.,
--branch-name,--no-pr-draft)
Contributions are welcome! Here's how to get started:
- Fork the repository and clone it locally
- Create a feature branch β
git checkout -b feat/your-feature - Follow the code conventions described in the Development section
- Write tests for new features and ensure
go test ./...passes - Commit your changes β consider using
kord commitonce it's available π - Open a pull request with a clear title and description
For bug reports and feature requests, please open an issue first to discuss before submitting a PR.
This project is licensed under the MIT License β see the LICENSE file for details.
ποΈ Current Status: Early Development The root command scaffolding is complete and stable. Primary focus is implementing the planned subcommands. Expect breaking changes and API refinements as the project evolves.
- Bug reports & feature requests β Open an issue
- Questions & discussions β GitHub Discussions
- Security vulnerabilities β Please email ashokbaruaakas@gmail.com directly instead of opening a public issue
Made with β€οΈ by the kord-cli team