Skip to content

Latest commit

 

History

History
236 lines (168 loc) · 5.09 KB

File metadata and controls

236 lines (168 loc) · 5.09 KB

OpenCodeHub CLI

OpenCodeHub CLI (OCH)

Production-ready Git workflows and stack-first pull request management from your terminal.

npm version npm downloads license

Why OCH

  • Fast command-line workflows for repositories, pull requests, issues, and reviews.
  • Stack-first branch/PR flow for multi-PR delivery.
  • Secure authentication model with OS credential storage support.
  • Built-in API tooling for scripting and automation.

Installation

npm install -g opencodehub-cli

Verify:

och --version
och --help

Quick Start

# 1) Authenticate
och auth login --url https://git.example.com

# 2) Inspect your setup
och config doctor

# 3) Push and open PR workflow
cd your-repo
och repo push

# 4) Create a pull request
och pr create --base main --title "feat: add onboarding"

Core Commands

  • och auth authentication (login, logout, status)
  • och config CLI settings and diagnostics (list, set, doctor)
  • och repo repository operations (create, clone, push, list)
  • och pr pull request lifecycle (create, list, view, merge, ...)
  • och stack stacked branch/PR workflows (create, submit, sync, ...)
  • och review code review + AI review flows
  • och issue issue management
  • och ci, och queue, och metrics, och insights, och notify, och automate
  • och api direct API requests (useful for scripts)

Run och <command> --help for full command options.

Authentication and Security

Login

och auth login --url https://git.example.com

For non-interactive environments:

och auth login --url https://git.example.com --token <PERSONAL_ACCESS_TOKEN>

Token storage behavior

  • OCH_TOKEN env var always takes precedence.
  • macOS: Keychain (security)
  • Linux: Secret Service (secret-tool)
  • Windows: DPAPI-encrypted storage via PowerShell
  • Fallback: local CLI config storage if secure backend is unavailable

Helpful environment variables

  • OCH_TOKEN: inject token from environment
  • OCH_HTTP_TIMEOUT_MS: HTTP timeout in ms (default 15000)
  • OCH_DISABLE_KEYCHAIN=1: disable credential backend (useful in CI/tests)

Configuration

Inspect current configuration:

och config list
och config path
och config doctor

Set values:

och config set serverUrl https://git.example.com
och config set defaultBranch main
och config set insecure false

Common Workflows

Repository lifecycle

# Create a remote repository
och repo create my-service --description "Internal API service"

# Clone repository
och repo clone acme/my-service

# Push local repository
och repo push --branch main

Pull request lifecycle

# Create PR from current branch
och pr create --base main --title "feat: add API pagination"

# List open PRs
och pr list --state open

# View PR details
och pr view 42

# Merge PR
och pr merge 42

Stack workflow

# Create first stack branch
och stack create auth-foundation

# Create subsequent branch
och stack create auth-ui

# Submit stack and create/update PRs
och stack submit

AI review workflow

# Trigger AI review
och review ai 42

# Wait for completion
och review ai 42 --wait

# Check latest review status
och review status 42

API mode for scripting

# Read current user
och api /user

# Create issue via API
och api /repos/acme/platform/issues -X POST -F title="Bug: timeout" -F body="Steps to reproduce"

CI Usage Example

name: OCH Automation
on: [push]

jobs:
  sync:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: "20"
      - run: npm install -g opencodehub-cli
      - run: |
          export OCH_TOKEN="${{ secrets.OCH_TOKEN }}"
          och config set serverUrl https://git.example.com
          och config doctor
          och repo push --branch main

Troubleshooting

Not logged in. Run 'och auth login' first.

  • Run och auth login --url <server>.
  • Or export OCH_TOKEN for automation.

Server URL not configured

  • Run och config set serverUrl https://git.example.com.

TLS / certificate issues

  • Use och config set caFile /path/to/ca.pem for custom CA.
  • Use och config set insecure true only for temporary debugging.

Validate setup end-to-end

och config doctor

Development

cd cli
npm install
npm run build
npm run test

License

MIT