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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions