Vibeleaderboard
Index / tool
Visit github.com
Category
Developer Tools
Rank
No. 1559Tools index

Previous survey · No. 1492 ·

Pricing
Open Source
Type
TOOL
Use case
Coding
Interfaces
CLI
GitHub
14 stars
Latest release
v0.3.1
Date

About

A Rust CLI that autonomously works through a GitHub issue backlog overnight by handing each sub-issue to an installed coding agent (Claude Code, Codex, Cursor, Copilot CLI, and others), managing branching, PR creation, and merging until every issue linked to a PRD is resolved. It selects work using native GitHub parent/blocked-by relationships rather than parsing issue text, and offers per-issue agent, model, and reasoning-effort selection via an optional TUI.

What it does

Give it a spec written as a GitHub issue and it loops through the child tasks under that spec one at a time. Each pass resets the local checkout to the base branch, asks GitHub which labelled tasks have no open blockers, and takes the lowest-numbered one. It starts a brand-new coding-agent process, pipes in the spec, the task and a fixed checklist (branch, test first, open a pull request, self-review, squash merge, close the task), then waits. When the agent exits, it confirms on GitHub that the task is closed. If the task is still open, the loop halts and tells you.

Why it's ranked here

The core idea is sound and cleanly executed: task order comes from GitHub's native parent and blocked-by links, not from parsing prose, so the plan is deterministic and inspectable with a dry run. It is MIT licensed, installs with one Cargo command, and drives seven agent CLIs through one switch. Checking that the task really closed before moving on is the right guard for an unattended loop. The price of unattended is steep, though: every supported agent is launched with its approval prompts switched off, and the merge lands on your base branch with no human in between.

What's good

GitHub, git and the agent process each sit behind a small interface, so the loop is tested with fakes, and a dedicated fake-agent binary exercises the real process runner. Bad combinations fail before any work starts: asking for a model on an agent that has no model flag, or an effort level outside that agent's documented set, is rejected up front with a message naming the valid values. The prompt goes in over standard input, keeping large specs off the command line. Per-task agent, model and effort choices live only in memory and a half-finished picker never starts a run.

Tradeoffs

Claude Code runs with permission checks skipped, Cursor with force and trust, OpenCode with auto-approve, Copilot with allow-all. Meanwhile the spec and task bodies are pasted verbatim into the prompt, so anyone able to write a labelled task can steer an agent that needs no approval. Agent output is thrown away in both display modes, and a failure reports only the exit status, so diagnosing a bad night means digging through the agent's own history. It needs GitHub CLI 2.94 or newer. Work is strictly serial: one task, one agent, then the next.

How to use it well

Best fit: a solo developer or small team with a spec already broken into small, well-ordered tasks, running in a disposable machine or container where an unsupervised agent cannot touch anything that matters. Use the bundled skills to publish the spec and child tasks in the exact shape it expects, run a dry run to check the planned order, and add your own test and lint commands through an appended prompt file. Keep the ready label restricted to people you trust. It does not parallelise work, review code for you, or recover from a task the agent leaves open.

Technical notes+

src/main.rs wires GhCliAdapter, GitCliAdapter and ProcessAgentRunner into orchestrator::run; the Runtime struct in src/orchestrator.rs holds them as trait objects so tests swap fakes. run_loop calls ensure_hygiene on the base branch, fetch_issues (src/github.rs shells out to gh issue list --label ready-for-agent --state open --json number,title,body,parent,blockedBy), plan_order, then render_issue_prompt and agent_runner.run, and finally is_issue_closed, failing if the issue is still open. Agent::get_command in src/agent.rs hard-codes claude -p --dangerously-skip-permissions, agent -p --force --trust, agy -p --dangerously-skip-permissions, opencode run --auto, copilot --allow-all --no-ask-user and codex exec - --ephemeral. get_command_with_profile validates model and effort via ensure_model_supported and validate_reasoning_effort (OpenCode variants pass through). resolve in src/invocation_profile.rs applies whole-run model and effort only when the per-issue agent equals the default agent. Cargo.toml declares a feature-gated fake agent binary and the process_agent_runner test that requires it. docs/context-management.md documents the prompt skeleton and the nine built-in directives.

Observed

License
MIT
Language
Rust, 2024 edition
Packaging
Published on crates.io as nightshift-cli; installs a nightshift binary via cargo install
Interface
CLI with an optional full-screen terminal board (ratatui, crossterm)
External requirements
GitHub CLI 2.94.0 or newer, git, and one supported coding-agent CLI
Supported agents
Claude Code, Codex CLI, Antigravity CLI, Cursor, Pi, OpenCode, GitHub Copilot CLI
Agent permissions
Agents are launched with non-interactive approval-bypass flags
Task selection
Native GitHub parent and blocked-by relationships plus a ready-for-agent label; issue bodies are not parsed for ordering
Testing
Unit tests in source modules and a feature-gated fake-agent binary for process-runner integration tests

Read from README.md, Cargo.toml, src/main.rs, src/cli.rs, src/orchestrator.rs, src/agent.rs, src/github.rs, src/preflight.rs, src/invocation_profile.rs, docs/invocation-profiles.md, docs/context-management.md.

What it can do

  • Assign GitHub sub-issues to an installed coding agent for resolution

    GitHub issue linked to a PRD → Resolved issue via coding agent

  • Merge pull requests once issues are resolved

    Pull request → Merged code

  • Select next issue to work on using GitHub parent/blocked-by relationships

    GitHub issue relationships → Selected issue

  • Configure per-issue coding agent, model, and reasoning effort via TUI

    User selection in TUI → Issue-specific agent configuration

  • Loop through all sub-issues of a PRD until fully resolved

    PRD identifier → Completed PRD

Tags

cligithubcoding-agentautomationrustai-agentsdeveloper-toolsissue-tracking

Tech Stack

Rust

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.