Skip to main content

Syntax

Description

The issue 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
When you update an issue:
  • Changes are written to the SQLite database
  • Changes are exported to JSONL for version control
  • The updated_at timestamp is automatically set
  • If status changes to closed, closed_at timestamp is set
Updates are partial - you only need to specify the fields you want to change. Other fields remain unchanged.

Arguments

string
required
The ID of the issue to updateExample: ISSUE-001The issue must exist in your project.

Options

string
Update issue statusExample: --status in_progressValid statuses:
  • open - Ready to be worked on
  • in_progress - Currently being worked on
  • blocked - Waiting on dependencies
  • needs_review - Implementation complete, awaiting review
  • closed - Work completed
number
Update priority level (0-4)Example: --priority 0Priority levels:
  • 0 - Critical (highest)
  • 1 - High
  • 2 - Medium
  • 3 - Low
  • 4 - Lowest
string
Update assigneeExample: --assignee "alice" or --assignee "agent-backend"Can be a username, agent ID, or any identifier. Use empty string to unassign: --assignee ""
string
Update the issue titleExample: --title "Fix critical OAuth bug"Changes the display title of the issue.
string
Update the issue description/contentExample: --description "Updated implementation details"This replaces the content of the issue.
boolean
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:

Change Priority

Elevate to critical:

Mark as Blocked

Update status when blocked:

Reassign to Another Team Member

Transfer ownership:

Unassign an Issue

Remove assignee:

Update Multiple Fields

Change status, priority, and assignee together:

Update Title

Rename an issue:

Update Description

Replace content:

Archive an Issue

Mark as archived (hidden from default views):

Unarchive an Issue

Restore an archived issue:

Status Transitions

Issues typically flow through statuses in this order:

Common Status Transitions

When you start working on an issue:
When implementation is done but needs review:
After review is complete:
When dependencies aren’t met:
When blockers are resolved:
If work needs to be resumed:

JSON Output

Use the global --json flag for machine-readable output:

Common Workflows

Agent Claiming Work

1

Find ready work

2

Review details

3

Claim and start

Implementing a Feature

1

Start work

2

If blocked, mark it

3

When implementation done

4

After review passes

Handling Blocked Work

1

Mark as blocked

2

Create blocker relationship

3

When blocker resolves

Reassigning Work

1

Find issues to reassign

2

Reassign to new team member

Bulk Updates with Scripting

Update multiple issues programmatically:

Update Behavior

What Gets Updated

When you run issue update:
  1. Database - SQLite database is updated immediately
  2. JSONL - Changes are exported to issues.jsonl for version control
  3. Timestamps - updated_at is set to current time
  4. Closed timestamp - If status changes to closed, closed_at is set

What Doesn’t Change

  • Issue ID - Immutable, cannot be changed
  • Creation timestamp - created_at never changes
  • Relationships - Use link command to manage relationships
  • Parent - Use --parent option on create, or update database directly
  • Tags - Currently no CLI option (edit JSONL or database directly)

Common Questions

No, issue update works on one issue at a time. For bulk updates, use shell scripting with loops:
  • 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
Closed issues appear in lists by default. Archived issues don’t.
The CLI doesn’t currently support updating parent_id. Options:
  1. Edit the JSONL file directly and run sudocode sync
  2. Use the database directly
  3. Create a new issue with the correct parent
No, sudocode doesn’t have built-in notifications. Status changes are tracked via git commits and the updated_at timestamp.
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.
Relationships are unaffected by issue update. They persist regardless of changes to status, priority, assignee, or other properties.

Troubleshooting

Cause: The issue ID doesn’t existSolution: Verify the ID:
Cause: Status must be one of: open, in_progress, blocked, needs_review, closedSolution: Use a valid status:
Cause: Priority must be 0-4Solution: Use a valid priority:
Cause: You may have set the same value it already hadSolution: Check current values:

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

1

View issue details

2

Update properties

3

Verify changes

4

Commit to git

Issues Concept Guide

Learn more about issues and their lifecycle