/code @devintern/pm DevIntern + GitHub Issues
Run your whole loop inside GitHub. @devintern/pm files well-specified issues, and @devintern/code implements them and opens the PR in the same repository.
How it works
What DevIntern does with GitHub Issues
Each product path keeps GitHub Issues as the handoff surface. No rip-and-replace, no new dashboard.
/pm Create GitHub Issues from AI drafts
- 1 Set TASK_TRACKER=github with a fine-grained or classic token.
- 2 Run devpm --interactive with your source material.
- 3 Review the draft and open the issue on your repository.
/code Implement GitHub Issues end-to-end
- 1 Run devintern against an issue number, URL, or a search-qualifier batch query.
- 2 Agent fetches the issue body, labels, comments, and embedded attachments.
- 3 Creates a branch, implements, self-reviews, opens a PR in the same repo, and comments back on the issue.
Capabilities
Built for real GitHub Issues workflows
GitHub REST API for issue creation and implementation
Issue type selection in the interactive flow
Same-repo context for engineering handoff
Status transitions via repo labels configured in settings.json
Search-qualifier batch runs (is:open label:bug) scoped to your repo
One GITHUB_TOKEN shared with PR creation
A single run
From GitHub Issues ticket to reviewed pull request
A single run takes a GitHub issue from number to reviewed pull request in the same repository. GitHub has no built-in workflow states, so DevIntern tracks progress with the status labels you configure.
- 1
Fetch the issue
DevIntern accepts an issue number, #number, or full URL and pulls the body, labels, and comments. GitHub has no attachment API, so images and files embedded in the issue body are downloaded for the agent.
- 2
Feasibility gate
The agent judges whether the issue is actionable as filed. Vague issues get the blocking questions posted right in the thread, where the reporter already is, instead of a wrong-guess pull request.
- 3
Status label flips to In Progress
If the issue passes the gate, DevIntern applies your in-progress label. List your status labels in GITHUB_STATUS_LABELS and each transition removes the previous one, so statuses stay mutually exclusive.
- 4
Implement and self-review
The change lands on a feature branch in the same repository as the issue. The agent then self-reviews the diff and patches problems before opening the pull request.
- 5
Deliver in the same repository
With --create-pr, DevIntern opens a pull request next to the issue, applies your review label, and posts an implementation summary comment. Transitioning to closed or done closes the issue instead of applying a label.
What gets written back to GitHub Issues
Every outcome lands on the issue as a comment, with status labels tracking progress. Use --skip-comments to run without comments or label changes.
Feasibility check
Assessment comment with the questions blocking implementation
Successful implementation
Implementation summary comment linking the pull request in the same repository
Incomplete run or max turns
Incomplete-run comment explaining what remains
Estimation run
Comment-only estimate with suggested points, reasoning, risks, and unclear areas
Batch runs
Work through GitHub Issues in batches
Batch selection uses the GitHub search qualifiers you already know. Queries are automatically scoped to your repository with repo:owner/repo is:issue, and the first 100 matches are processed in sequence.
Single issue, PR included
$ devintern 123 --create-pr Drain open bugs
$ devintern --query "is:open label:bug" --create-pr Open issues matching a phrase
$ devintern --query 'is:open "login flow"' --create-pr GitHub's search API allows 30 requests per minute; large batches pace themselves accordingly.
GitHub Issues specifics at a glance
API
GitHub REST API; the same GITHUB_TOKEN used for pull request creation
Query language
GitHub search qualifiers via --query, auto-scoped to your repo
Status updates
Repo labels from settings.json; GITHUB_STATUS_LABELS keeps them mutually exclusive
Estimation
Comment-only; GitHub Issues has no estimation field
Attachments
Images and files embedded in the issue body downloaded for the agent
Same-repo loop
Issue, branch, and pull request all live in one repository
Get connected
Setup guides and configuration
Credentials stay in project-local .env files. DevIntern runs on your machine or server, not a shared implementation cloud.
FAQ
Common questions about GitHub Issues
Can @devintern/code implement GitHub Issues directly?
Yes. Set TASK_TRACKER=github with GITHUB_REPO, then run devintern against an issue number or URL. It implements the change, opens a PR in the same repository, moves status labels, and posts a summary comment on the issue. Batch selection works with GitHub search qualifiers via --query.
What token scopes are required?
Issues read and write on the target repository. Use a fine-grained PAT limited to the repos DevIntern should touch.
How do status labels stay clean?
List all status label names in GITHUB_STATUS_LABELS. When a status changes, DevIntern adds the target label and removes the others in that list, so old statuses never pile up on an issue. The labels must already exist in the repository.
Does story point estimation work with GitHub Issues?
In comment-only mode. GitHub Issues has no estimation field, so --estimate posts (or updates) a comment with the suggested points, reasoning, risks, and unclear areas rather than writing to a field.
Try DevIntern with GitHub Issues
Connect GitHub Issues, run your first workflow, and keep the trackers, repos, and reviewers your team already trusts.
Free for interactive use · FSL source-available · BYO model keys