Skip to main content

An AI teammate that takes care of your GitHub work.

Project description

Robert

English | 简体中文

Your Repo Teammate

An AI teammate that takes care of your GitHub work.

Robert is a self-hosted GitHub teammate that turns trusted issues, mentions, assignments, reviews, and follow-up comments into controlled coding-agent work. It coordinates local workers, isolates repository work in Git worktrees, audits proposed GitHub actions, and stores durable workstream state in SQLite.

What Robert Is

Robert is a local control plane for trusted GitHub collaboration. It discovers authorized work, routes it to a configured worker, supervises execution, audits the proposed GitHub actions, and publishes only actions allowed by the route.

Why Robert Exists

Coding agents are useful, but unattended GitHub automation needs durable state, clear trust boundaries, isolated workspaces, deduplication, and evidence. Robert provides those controls without requiring a GitHub App or hosted service.

Key Capabilities

  • Trusted issue, pull-request, review, assignment, and mention handling.
  • Multi-repository workstreams stored in SQLite.
  • Per-route worker, required-skill, and recommended-skill configuration.
  • Isolated Git worktrees for analysis, implementation, and source review.
  • Native systemd user services and macOS LaunchAgents.
  • Read-only local web UI with an explicitly enabled writable mode.
  • Optional read-only OpenClaw chat commands.
  • Safe migration from the former dd-github-agent state directory.

How It Works

flowchart LR
    A[Poll GitHub with gh] --> B[Normalize and authorize]
    B --> C[Create or resume workstream]
    C --> D[Resolve route and skills]
    D --> E[Prepare isolated workspace]
    E --> F[Run configured worker]
    F --> G[Audit structured result]
    G -->|Accepted| H[Deduplicate and publish]
    G -->|Blocked| I[Persist failure evidence]
    H --> J[(SQLite state)]
    I --> J

Robert polls GitHub through the authenticated gh CLI, normalizes events, checks repository-specific trust rules, creates or resumes a workstream, selects a route, prepares a task workspace, launches a local worker, audits its structured result, and deduplicates approved GitHub actions before publication.

Security and Trust

GitHub text is untrusted input. Only configured actors can trigger work. Repository overrides cannot change immutable route permissions or workspace policy. Worker environments use an allowlist, credentials are never stored in Robert configuration, and GitHub-facing text passes the redaction and audit gates. The web UI binds to 127.0.0.1 by default.

Requirements

  • Linux or macOS. Windows is supported through WSL.
  • Python 3.10 or newer.
  • Git and GitHub CLI (gh) with an authenticated session.
  • At least one local worker command such as Codex.
  • pipx is recommended for installation.

Quick Start

pipx install robert-github-agent
gh auth login
robert init
robert doctor
robert service install
robert service start

The configuration is written to ~/.config/robert/config.yml. Runtime data is stored under ~/.local/share/robert/.

Configuration

Robert uses versioned YAML. Configure the GitHub account, worker definitions, skill search paths, route overrides, and one or more repository checkouts. See docs/reference.md.

Worker Adapters

Built-in adapters support codex, tcodex, cbc, and a generic command adapter. A worker definition chooses its adapter, executable, default model, effort, timeout, prompt transport, and environment-variable allowlist.

Route Skills

Each route can declare required and recommended skills. Missing required skills block that task before a worktree or worker is created. Missing recommended skills appear in doctor output but do not block execution.

Multiple Repositories

Each repository has its own checkout, worktree root, trusted actors, concurrency limit, and optional route overrides. A failure in one repository does not stop other repository pipelines in the same cycle.

Daemon Service

robert service install
robert service start
robert service status

Robert runs in the foreground under systemd user services or launchd. Use robert daemon run for direct foreground operation.

Local Web UI

robert web run

The default server is local and read-only. Writable mode requires:

robert web run --writable --operator "$USER"

Non-loopback binding also requires --allow-remote and an authenticated reverse proxy.

OpenClaw

robert openclaw install
robert openclaw status

The optional plugin exposes read-only Robert status, task, run, and artifact commands. It never schedules or starts Robert.

Migration

Preview and import legacy state:

robert migrate dd-github-agent --dry-run
robert migrate dd-github-agent

Migration creates a separate backup and preserves legacy deduplication markers.

Troubleshooting

Run robert doctor --output json, check robert service status, and export a redacted support archive with:

robert diagnostics export --output robert-diagnostics.zip

Do not attach private repository content or credentials to public issues.

Contributing

Read COMMUNITY.md, run the documented verification commands, and sign commits with git commit -s. Robert uses the Developer Certificate of Origin and does not require a CLA for the first beta.

Project Status

Robert 0.1.0b1 is a public beta. Polling is the only GitHub event transport in this release. Interfaces may evolve before the first stable release.

License

Apache License 2.0. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

robert_github_agent-0.1.0b1.tar.gz (358.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

robert_github_agent-0.1.0b1-py3-none-any.whl (279.8 kB view details)

Uploaded Python 3

File details

Details for the file robert_github_agent-0.1.0b1.tar.gz.

File metadata

  • Download URL: robert_github_agent-0.1.0b1.tar.gz
  • Upload date:
  • Size: 358.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for robert_github_agent-0.1.0b1.tar.gz
Algorithm Hash digest
SHA256 c4286a8211a8335d69e2133408a312778ad30af78f6ce10ee77dc44cf3dbd631
MD5 e2c3725c2af5ace92c109d3830eab857
BLAKE2b-256 376e3e95e38bef82f85bdf6e711013d18404f6ced4fc1565834718a55b99b116

See more details on using hashes here.

Provenance

The following attestation bundles were made for robert_github_agent-0.1.0b1.tar.gz:

Publisher: release.yml on wklken/Robert

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file robert_github_agent-0.1.0b1-py3-none-any.whl.

File metadata

File hashes

Hashes for robert_github_agent-0.1.0b1-py3-none-any.whl
Algorithm Hash digest
SHA256 1f502103f682b3430be7d66fc3a8c1883456cb9c511226dc62f65888958bffce
MD5 8c40407f8f56b1a868347bfc8965cdf4
BLAKE2b-256 3a0c7e94018227df24b1719d6ed4ee2259e3134e674a260b4dfd1b94211e78c3

See more details on using hashes here.

Provenance

The following attestation bundles were made for robert_github_agent-0.1.0b1-py3-none-any.whl:

Publisher: release.yml on wklken/Robert

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page