Skip to content

Functional gaps: missing CLI capabilities #12

@don-petry

Description

@don-petry

Summary

Several missing CLI features that would improve usability, safety, and scriptability.

Items

1. No --json output on any command

Zero machine-readable output across the entire CLI. This blocks scripting, editor integrations, and AI agent tool use. Priority candidates:

  • dgr tree --json — branch graph as JSON
  • dgr pr list --json — tracked PRs as JSON
  • dgr status --json (see below)

2. No dgr status command

No quick summary view showing: current branch's tracking status, whether it needs restacking or pushing, pending operations, PR state. Users must mentally combine dgr tree + git status + check GitHub.

3. No --dry-run on sync

dgr sync performs destructive operations (force-push, branch deletion, PR retargeting) with no preview mode. A --dry-run flag that prints planned actions without executing them would significantly reduce adoption friction.

4. No --no-push / --no-fetch on sync

No way to sync locally without pushing to remote. Useful for: reviewing restack results before pushing, working offline, CI environments with read-only tokens.

5. No selective sync

dgr sync always processes the entire workspace. A dgr sync <branch> to sync only a specific stack would be useful for large workspaces.

6. No dgr restack standalone command

Restacking only happens as a side effect of commit, sync, reparent, etc. Users should be able to manually trigger a restack of the current branch's descendants.

7. No --skip during restack conflicts

When a restack pauses on a conflict, the only options are resolve or manually abort. A --skip flag to skip the conflicting branch and continue with the rest of the stack would help.

8. Merge strategy hardcoded to --squash

dgr pr merge always passes --squash --delete-branch to gh pr merge. Users should be able to choose: --squash, --merge, or --rebase.

9. No shell completions

clap_complete support is not wired up. Adding a dgr completions <shell> command for bash/zsh/fish/powershell is low effort and high UX value.

10. No NO_COLOR environment variable support

ANSI color codes are always emitted. The no-color.org convention (NO_COLOR=1) is not respected. Also missing: --color=auto|always|never flag.

11. Limited commit passthrough flags

Only -a, -m, --amend, --no-edit are passed to git commit. Missing commonly used flags: --fixup, --signoff, -p/--patch, --allow-empty.

12. No PR creation options

dgr pr only supports --title, --body, --draft. Missing: --labels, --reviewers, --assignees, --milestone.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions