Skip to content

Latest commit

 

History

History
135 lines (104 loc) · 5.37 KB

File metadata and controls

135 lines (104 loc) · 5.37 KB

kenn-forge

kenn-forge is a local maintainer console for pull requests, issues, reviews, activity, and local workspaces. It syncs the repositories you maintain into a local SQLite database and serves the UI from one binary.

Start with the user guide for setup and workflows.

Teaser

kenn-forge Activity with a selected pull request, live workspace, and coding-agent session

Activity keeps the selected pull request beside its live workspace and coding-agent session.

What you can do

  • Triage activity across repositories and provider hosts.
  • Review pull requests and merge requests with discussion, diffs, and CI context.
  • Work with issues without leaving the console.
  • Create local workspaces for hands-on review or implementation.
  • Read and respond to Roborev reviews from a running daemon.
  • Link Kata issues to provider work and local workspaces.
  • Browse and edit registered Markdown folders.
  • Expose cached maintainer workflows to local MCP clients from the daemon.
  • View and operate remote kenn-forge daemons through a federated fleet.

Provider capabilities vary. kenn-forge shows unsupported actions as unavailable.

Install a release

Download the archive for your system from GitHub Releases. Releases include a SHA256SUMS file.

System Architecture Archive
Linux x86-64 forge_<version>_linux_amd64.tar.gz
Linux ARM64 forge_<version>_linux_arm64.tar.gz
macOS Intel forge_<version>_darwin_amd64.tar.gz
macOS Apple silicon forge_<version>_darwin_arm64.tar.gz
Windows x86-64 forge_<version>_windows_amd64.zip

Extract the archive and move kenn-forge or kenn-forge.exe to a directory on your PATH.

Build the current source when no release is published:

git clone https://github.com/kenn-io/forge.git kenn-forge
cd kenn-forge
make install

Source builds require Go 1.27+ and Bun.

Start

GitHub users can reuse an authenticated GitHub CLI session:

gh auth login
kenn-forge daemon start

Open http://127.0.0.1:8091. First-run setup connects a code forge, adds repositories, runs the first sync, and opens a pull request.

Use kenn-forge serve when you want the server attached to the foreground for development or diagnosis.

The Repositories panel selects provider hosts and repository patterns. GitLab, Forgejo, and Gitea hosts reuse an authenticated glab or fj session the same way. Configure explicit credentials through environment variables or ~/.kenn/forge/config.toml; see Configuration.

Local workspaces require Git and tmux on a Unix-like host. The Windows release supports the dashboard and provider actions. Use WSL or a remote Unix-like kenn-forge host when you need workspace sessions.

GitHub CLI shim

Build forge-gh with go build -o tmp/forge-gh ./cmd/forge-gh. Keep the real gh installed. To opt a tool into the shim, put a symlink named gh to this binary in a separate directory ahead of the real gh on that tool's PATH. FORGE_GH_REAL can select the real executable explicitly.

The shim serves piped pr list and pr view <number> JSON queries for watched GitHub repositories from the local daemon's SQLite data on hubs and spokes. Missing numeric views can use the existing hub PR-read API. Normal Forge sync owns freshness; the shim neither fetches provider data nor keeps an extra cache. List queries require a completed repository sync, and historical lists also require a complete archived PR inventory. List filters include --head, --base, --state, and --limit. Supported JSON fields are number,title,state,url,body,isDraft,headRefName,headRefOid,baseRefName,createdAt,updatedAt,closedAt,mergedAt.

Everything else delegates unchanged to gh, including untracked repositories, branch-based views, checks, terminal output, --jq, --template, unsupported fields, missing or incomplete stored data, and unavailable daemons. Use --repo or GH_REPO when the checkout has multiple remotes. FORGE_GH_CONFIG selects a non-default Forge config file.

Full argument arrays (argv), command names, and outcomes are appended to forge-gh-usage.jsonl in Forge's default config directory, including flag values. To rank the exact invocations that are served or delegated:

jq -s 'group_by([.argv,.reason]) | map({argv: .[0].argv, reason: .[0].reason, count: length}) | sort_by(-.count)' ~/.kenn/forge/forge-gh-usage.jsonl

Documentation

kenn-forge is licensed under the Elastic License 2.0. Contributions made before the relicense remain available under the MIT License; see NOTICE. Contact Kenn Software at info@kenn.io for commercial licensing.