logo
0
0
WeChat Login

hermes-code

hermes-code is a local Go CLI and daemon for orchestrating AI coding work from repository-native issues.

Current provider support:

  • cnb

Project Layout

.
├── cmd/                 # Cobra command tree
├── internal/            # Non-exported application packages
│   ├── config/          # Config loading and validation
│   ├── daemon/          # Long-running monitoring loop
│   ├── lifecycle/       # Issue, branch, and PR lifecycle operations
│   ├── model/           # Shared domain models
│   ├── provider/        # Git provider abstraction and implementations
│   ├── runtime/         # AI runtime adapters
│   ├── scheduler/       # Eligibility, queueing, and execution decisions
│   ├── state/           # Local persistent orchestration state
│   ├── trigger/         # Manual, polling, and webhook trigger inputs
│   └── workspace/       # Git worktree and repository cache management
├── docs/                # Product and engineering docs
├── main.go              # CLI entrypoint
└── Makefile             # Common dev commands

Commands

  • hermes-code init
  • hermes-code status
  • hermes-code daemon start
  • hermes-code daemon stop
  • hermes-code repo discover --provider cnb
  • hermes-code repo list
  • hermes-code repo add <provider/repo>
  • hermes-code repo runtime set <repo-id> <runtime>
  • hermes-code repo runtime get <repo-id>
  • hermes-code repo start <repo-id>
  • hermes-code repo stop <repo-id>
  • hermes-code runtime detect
  • hermes-code runtime list
  • hermes-code issue run <repo>#<number>
  • hermes-code issue list-pending
  • hermes-code issue approve <repo>#<number>
  • hermes-code issue reject <repo>#<number>

Runtime Discovery

Examples:

hermes-code runtime detect
hermes-code runtime list
hermes-code repo runtime set hermes-code codex
hermes-code repo runtime get hermes-code

CNB Repository Discovery

repo discover uses the CNB GetRepos API and handles provider-side pagination automatically.

Examples:

hermes-code repo discover --provider cnb
hermes-code repo discover --provider cnb --limit 200
hermes-code repo discover --provider cnb --all
hermes-code repo discover --provider cnb --search hermes
hermes-code repo discover --provider cnb --search hermes --limit 20

Behavior:

  • default limit is 100
  • --all fetches all pages
  • --search is passed to CNB as a server-side repository filter
  • --all and --limit cannot be used together

Quick Start

Initialize config:

export HERMES_CODE_CNB_TOKEN=your-token
hermes-code init --provider cnb --base-url https://api.cnb.cool --token-env HERMES_CODE_CNB_TOKEN

Discover and register a repository:

hermes-code repo discover --provider cnb --search hermes
hermes-code repo add cnb/org/hermes-code --id hermes-code --default-branch main
hermes-code repo start hermes-code

Development

make test
make build

About

No description, topics, or website provided.
Language
Go99.9%
Makefile0.1%