https://github.com/kompassdev/kompass
Navigate your way - manual steering, steered autonomy, or autonomously. Kompass keeps AI coding agents on course with token-efficient, composable workflows.
https://github.com/kompassdev/kompass
agent-navigation ai automation autonomous-coding code-review coding-agent developer-tools github kompass steered-autonomy token-efficiency workflow
Last synced: 6 days ago
JSON representation
Navigate your way - manual steering, steered autonomy, or autonomously. Kompass keeps AI coding agents on course with token-efficient, composable workflows.
- Host: GitHub
- URL: https://github.com/kompassdev/kompass
- Owner: kompassdev
- License: mit
- Created: 2026-03-09T16:33:19.000Z (12 days ago)
- Default Branch: main
- Last Pushed: 2026-03-13T21:11:38.000Z (8 days ago)
- Last Synced: 2026-03-14T08:08:11.503Z (8 days ago)
- Topics: agent-navigation, ai, automation, autonomous-coding, code-review, coding-agent, developer-tools, github, kompass, steered-autonomy, token-efficiency, workflow
- Language: TypeScript
- Homepage: https://kompassdev.ai/
- Size: 8.61 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Agents: AGENTS.md
Awesome Lists containing this project
README
> Kompass is under active development, so workflows, package APIs, and adapter support may keep evolving as the toolkit expands.
Navigate your way - manual steering, steered autonomy, or autonomously.
Kompass keeps AI coding agents on course with token-efficient, composable workflows. **Finally, your agent stops wandering.**
Whether you prefer full control, guided collaboration, or hands-off autonomy, Kompass adapts to how you work.
## Choose Your Mode
**🧭 Manual Steering** — You chart the course, the agent follows your lead
**⚓ Collaborative** — Plan together, develop together, review together
**🚢 Autonomous** — Let your agent navigate independently, review at checkpoints
## Why Kompass?
| Challenge | How Kompass Helps |
|-----------|-------------------|
| Agents wander without direction | 🧭 **Navigation** — structured workflows keep agents on course |
| Rebuilding prompts for every agent | 🔌 **Plug & Play** — same workflows across OpenCode, Claude Code, and more |
| Token bloat in long sessions | 🎯 **Token Efficient** — minimal, focused prompts that get to the point |
| Ad-hoc planning and review | ⚓ **Workflows** — purpose-built flows for plan, dev, and review |
| Generic tools miss context | 🛠️ **Tailored Tools** — purpose-built for repository work |
| Complex setup overhead | ⚡ **Easy to Use** — install the plugin, start navigating |
## Installation
For OpenCode, add the adapter package to your config:
```json
{
"plugin": ["@kompassdev/opencode"]
}
```
Config is optional. To publish a config file:
```bash
# Inside .opencode folder
curl -fsSL https://raw.githubusercontent.com/kompassdev/kompass/main/kompass.jsonc -o .opencode/kompass.jsonc
# Project root
curl -fsSL https://raw.githubusercontent.com/kompassdev/kompass/main/kompass.jsonc -o kompass.jsonc
```
Kompass prefers `.opencode/kompass.jsonc`, then `kompass.jsonc`, and still accepts the legacy `.json` filenames.
## How To Use
### OpenCode
Use `@kompassdev/opencode` when you want Kompass workflows inside OpenCode.
- install the plugin in your OpenCode config
- optionally add `.opencode/kompass.jsonc` or `kompass.jsonc` to customize commands, agents, tools, skills, and defaults
- bundled Kompass skills are registered automatically when the plugin loads, so users do not need to copy skill files manually
- use commands like `/review`, `/pr/create`, or `/ticket/plan` inside OpenCode
- for CLI session debugging, use `opencode session list` to find a session id and `opencode export ` to dump the raw session JSON
### Claude Code
Claude Code adapter support is coming soon.
Kompass is being structured as a shared core toolkit with adapter-specific packages, so the same workflows can be reused across agents instead of rebuilt from scratch.
## Agents
### `navigator`
Coordinates multi-step workflows like `/todo` and `/ship` by keeping orchestration local and delegating focused leaf work to subagents.
### `planner`
Turns a request or ticket into a scoped implementation plan.
### `reviewer`
Reviews branch or PR changes without editing files.
## Commands
### `/commit`
Stages and commits changes with a generated message.
**Usage:** `/commit [message]`
If a message is provided, commits with that message. Otherwise, generates an appropriate commit message based on the staged changes.
### `/commit-and-push`
Stages, commits, and pushes changes in one workflow.
**Usage:** `/commit-and-push [message]`
Commits changes (generating a message if not provided) and pushes to the remote repository.
### `/dev`
Implementation mode for focused development work.
**Usage:** `/dev `
Use for active development tasks. The agent implements the described changes while staying focused on the task.
### `/learn`
Learns patterns and conventions from existing code.
**Usage:** `/learn `
Analyzes the codebase to understand patterns, conventions, or specific implementations. Useful for understanding how things work before making changes.
### `/pr/create`
Creates a pull request with structured checklists.
**Usage:** `/pr/create [title]`
Creates a PR from the current branch. Generates a title if not provided. Includes checklist sections for consistent PR structure.
### `/pr/fix`
Fixes issues found during PR review.
**Usage:** `/pr/fix [context]`
Addresses review comments and feedback on an open PR. Loads the PR context and works through requested changes.
### `/pr/review`
Reviews a pull request and adds structured feedback.
**Usage:** `/pr/review [pr]`
Reviews the specified PR (or current PR if not specified) and provides feedback using inline comments and review threads.
### `/reload`
Reloads the OpenCode project cache.
**Usage:** `/reload`
Refreshes config, commands, agents, and tools without restarting OpenCode. Useful after making changes to `kompass.jsonc`.
### `/review`
Reviews branch changes for issues and improvements.
**Usage:** `/review [base]`
Reviews uncommitted changes or changes against a base branch (default: main). Provides feedback on code quality, patterns, and potential issues.
### `/ship`
Ships the fast path from change summary to commit and PR creation.
**Usage:** `/ship [base-or-context]`
Summarizes current changes, creates a feature branch when you are still on the base branch, then delegates the commit and PR steps to `/commit` and `/pr/create`.
### `/todo`
Works through a todo file task by task.
**Usage:** `/todo [todo-file]`
Loads a todo list, delegates one item at a time, and keeps orchestration local so work can pause and resume cleanly.
### `/rmslop`
Removes unnecessary code and simplifies.
**Usage:** `/rmslop`
Analyzes the codebase for unnecessary complexity, unused code, and opportunities for simplification.
### `/ticket/create`
Creates a GitHub issue from a description.
**Usage:** `/ticket/create `
Creates a new GitHub issue with the provided description, generating a title and structured body with checklists.
### `/ticket/dev`
Implements a ticket with planning and execution.
**Usage:** `/ticket/dev `
Loads the specified ticket (URL, #id, or file path), creates an implementation plan, and executes the work.
### `/ticket/plan`
Creates an implementation plan for a ticket.
**Usage:** `/ticket/plan `
Loads the specified ticket and creates a detailed implementation plan without executing changes.
## Tools
### `changes_load`
Load branch changes against a base branch.
**Parameters:**
- `base` (optional): base branch or ref
- `head` (optional): head branch, commit, or ref override
- `depthHint` (optional): shallow-fetch hint such as PR commit count
- `uncommitted` (optional): only load uncommitted changes (staged and unstaged), never fall back to branch comparison
**Why it helps:**
- keeps branch diff loading focused
- works well for review and PR workflows
- handles workspace changes separately from committed branch diffs
### `pr_load`
Load PR metadata and review history.
**Parameters:**
- `pr` (optional): PR number or URL
**Why it helps:**
- gives agents normalized PR context before they start reviewing or summarizing
- keeps review workflows grounded in actual PR state instead of inferred context
### `pr_sync`
Create, update, or review a GitHub pull request with structured checklists.
**Parameters:**
- `title` (optional): PR title; required when creating a PR or renaming one
- `body` (optional): raw PR body override
- `description` (optional): short PR description rendered above checklist sections
- `base` (optional): base branch to merge into
- `checklists` (optional): structured checklist sections (e.g., Testing, Summary)
- `draft` (optional): create as draft PR
- `refUrl` (optional): PR URL to update instead of creating new
- `commitId` (optional): commit SHA to anchor review comments to
- `review` (optional): structured review submission with optional `body`, inline `comments`, and `approve` flag
- `replies` (optional): replies to existing review comments
- `commentBody` (optional): general PR comment body
**Why it helps:**
- consistent PR creation with checklist support
- create, update, review, approve, and reply with one tool
- no shell escaping issues
### `ticket_load`
Load a ticket from GitHub, file, or text.
**Parameters:**
- `source` (required): issue URL, repo#id, #id, file path, or raw text
- `comments` (optional): include issue comments
**Why it helps:**
- lets the same workflow start from GitHub, a local file, or pasted text
- gives planning and implementation flows a consistent input format
### `ticket_sync`
Create or update a GitHub issue with checklists.
**Parameters:**
- `title` (required): issue title
- `body` (optional): raw issue body override
- `description` (optional): short issue description rendered above checklist sections
- `labels` (optional): labels to apply when creating or updating the issue
- `checklists` (optional): structured checklist sections rendered as markdown
- `refUrl` (optional): issue URL to update instead of creating a new issue
**Why it helps:**
- lets ticket flows create a new issue or update an existing one with one tool
- avoids making the agent handcraft raw `gh` issue commands each time
### `reload`
Refresh the OpenCode project cache.
**Parameters:** none
**Why it helps:**
- refresh config, commands, and tools without restarting
- useful after making changes to `kompass.jsonc`
## Config
Project config is optional.
If you want to customize Kompass, use one of these preferred locations in the consumer project:
- `.opencode/kompass.jsonc`
- `kompass.jsonc`
See `kompass.jsonc` for the root example, `packages/opencode/.opencode/kompass.jsonc` for the compiled OpenCode-scoped example, and `kompass.schema.json` for the schema.
Tool names can also be remapped per adapter. For example, this keeps `ticket_sync` enabled but exposes it as `custom_ticket_name`, and Kompass command or agent references are rewritten to match:
```jsonc
{
"tools": {
"ticket_sync": {
"enabled": true,
"name": "custom_ticket_name"
}
}
}
```
## Workspace
This repository is the Kompass development workspace.
- `packages/core`: shared Kompass workflows, prompts, components, config loading, and tool definitions
- `packages/opencode`: the OpenCode adapter package, published as `@kompassdev/opencode`
The root coordinates workspace scripts, shared config, tests, and compiled review output.
## Workspace Scripts
```bash
bun run compile
bun run typecheck
bun run test
```
`bun run compile` regenerates `packages/opencode/.opencode/` from the OpenCode package.
## Publishing Direction
- publish `packages/opencode` as `@kompassdev/opencode`
- keep shared workflow logic in `packages/core`
- add future adapters as sibling packages, such as `packages/claude-code`