Syntax
Description
Theissue update command allows you to modify properties of an existing issue. Common updates include:
- Changing status as work progresses
- Updating priority
- Assigning/reassigning to team members or agents
- Modifying title or description
- Archiving completed or abandoned work
- Changes are written to the SQLite database
- Changes are exported to JSONL for version control
- The
updated_attimestamp is automatically set - If status changes to
closed,closed_attimestamp is set
Updates are partial - you only need to specify the fields you want to change. Other fields remain unchanged.
Arguments
The ID of the issue to updateExample:
ISSUE-001The issue must exist in your project.Options
Update issue statusExample:
--status in_progressValid statuses:open- Ready to be worked onin_progress- Currently being worked onblocked- Waiting on dependenciesneeds_review- Implementation complete, awaiting reviewclosed- Work completed
Update priority level (0-4)Example:
--priority 0Priority levels:- 0 - Critical (highest)
- 1 - High
- 2 - Medium
- 3 - Low
- 4 - Lowest
Update assigneeExample:
--assignee "alice" or --assignee "agent-backend"Can be a username, agent ID, or any identifier. Use empty string to unassign: --assignee ""Update the issue titleExample:
--title "Fix critical OAuth bug"Changes the display title of the issue.Update the issue description/contentExample:
--description "Updated implementation details"This replaces the content of the issue.Archive or unarchive the issueExample:
--archived true or --archived falseArchived issues are hidden from default listings but retained for reference.Examples
Claim an Issue
Assign yourself and mark as in progress:Expected output
Expected output
Change Priority
Elevate to critical:Expected output
Expected output
Mark as Blocked
Update status when blocked:Expected output
Expected output
Reassign to Another Team Member
Transfer ownership:Expected output
Expected output
Unassign an Issue
Remove assignee:Expected output
Expected output
Update Multiple Fields
Change status, priority, and assignee together:Expected output
Expected output
Update Title
Rename an issue:Expected output
Expected output
Update Description
Replace content:Expected output
Expected output
Archive an Issue
Mark as archived (hidden from default views):Expected output
Expected output
Unarchive an Issue
Restore an archived issue:Expected output
Expected output
Status Transitions
Issues typically flow through statuses in this order:Common Status Transitions
open → in_progress
open → in_progress
When you start working on an issue:
in_progress → needs_review
in_progress → needs_review
When implementation is done but needs review:
needs_review → closed
needs_review → closed
After review is complete:
open/in_progress → blocked
open/in_progress → blocked
When dependencies aren’t met:
blocked → in_progress
blocked → in_progress
When blockers are resolved:
closed → open (reopen)
closed → open (reopen)
If work needs to be resumed:
JSON Output
Use the global--json flag for machine-readable output:
JSON output
JSON output
Common Workflows
Agent Claiming Work
Implementing a Feature
Handling Blocked Work
Reassigning Work
Bulk Updates with Scripting
Update multiple issues programmatically:Update Behavior
What Gets Updated
When you runissue update:
- Database - SQLite database is updated immediately
- JSONL - Changes are exported to
issues.jsonlfor version control - Timestamps -
updated_atis set to current time - Closed timestamp - If status changes to
closed,closed_atis set
What Doesn’t Change
- Issue ID - Immutable, cannot be changed
- Creation timestamp -
created_atnever changes - Relationships - Use
linkcommand to manage relationships - Parent - Use
--parentoption on create, or update database directly - Tags - Currently no CLI option (edit JSONL or database directly)
Common Questions
Can I update multiple issues at once?
Can I update multiple issues at once?
No,
issue update works on one issue at a time. For bulk updates, use shell scripting with loops:What's the difference between closing and archiving?
What's the difference between closing and archiving?
- Closing (
--status closed) marks work as complete, normal workflow state - Archiving (
--archived true) hides the issue from default listings, used for abandoned or obsolete work
How do I change the parent issue?
How do I change the parent issue?
The CLI doesn’t currently support updating
parent_id. Options:- Edit the JSONL file directly and run
sudocode sync - Use the database directly
- Create a new issue with the correct parent
Will updating status notify anyone?
Will updating status notify anyone?
No, sudocode doesn’t have built-in notifications. Status changes are tracked via git commits and the
updated_at timestamp.Can I change the issue ID?
Can I change the issue ID?
No, issue IDs are immutable. They serve as stable references across the system. If you need a different ID, create a new issue and close the old one.
What happens to relationships when I update an issue?
What happens to relationships when I update an issue?
Relationships are unaffected by
issue update. They persist regardless of changes to status, priority, assignee, or other properties.Troubleshooting
Error: Issue not found
Error: Issue not found
Cause: The issue ID doesn’t existSolution:
Verify the ID:
Error: Invalid status value
Error: Invalid status value
Cause: Status must be one of: open, in_progress, blocked, needs_review, closedSolution:
Use a valid status:
Error: Invalid priority value
Error: Invalid priority value
Cause: Priority must be 0-4Solution:
Use a valid priority:
Update succeeded but nothing changed
Update succeeded but nothing changed
Cause: You may have set the same value it already hadSolution:
Check current values:
Related Commands
issue show
View issue details
issue create
Create new issue
issue list
List all issues
issue close
Close completed issues
issue delete
Delete an issue
ready
Find ready work
Next Steps
Issues Concept Guide
Learn more about issues and their lifecycle

