
Product
Announcing Socket Fix 2.0
Socket Fix 2.0 brings targeted CVE remediation, smarter upgrade planning, and broader ecosystem support to help developers get to zero alerts.
imdone-cli
Advanced tools
All the power of Jira without the headaches.
Skip the browser. imdone-cli brings your entire Jira workflow into your development environment. Pull issues as markdown files, edit with your favorite tools, and push everything backβissues, comments, attachments, and status changesβall from the command line.
imdone push
git pull
and git push
imdone merge
Found a bug or have a feature request? We'd love to hear from you!
Run:
npm i -g imdone-cli
In your project folder:
imdone init
Youβll be prompted for your Jira details and your license.
If rerun, init
will reuse your existing configuration as defaults.
π Output Formats: Many commands support the
-f, --format
option to change output format. Available formats are:json
,yaml
,csv
,text
(default).
init
β Initialize Jira Integrationimdone init
Options:
--name
--jira-url
--jira-project-key
--jira-username
--jira-api-token
--jql
clone
β Clone Remote Backlog Repositoryimdone clone
Options:
--remote-url
--backlog-dir
Clones a remote backlog for easy onboarding.
update
β Update imdone-cli Configimdone update
Pull imdone-cli config from origin/main
(using "theirs" strategy).
pull
β Pull Issues from Jiraimdone pull
Options:
-f, --format <format>
- Output format: json, yaml, csv, text (default: text)Fetches issues, comments, and attachments from Jira. Stashes local changes if needed, updates markdown files, and restores your changes.
What gets pulled:
push
β Push Changes to Jiraimdone push
Lints, pulls, extracts updates, and syncs with Jira.
What gets pushed:
π‘ Pro Tip: Use
commentRequired:true
in task metadata to enforce comments on critical issues before pushing to Jira.
add
β Create New Jira Issueimdone add
Alias: a
Creates a new Jira issue through an interactive guided process, or using provided options.
Options:
--template [template]
- Template to use for the issue (e.g., story, bug)--issue-type [issueType]
- Jira issue type (e.g., Story, Task, Bug)--location [location]
- Issue location: "backlog" or "sprint"--sprint-id [sprintId]
- Sprint ID when location is "sprint"--summary [summary]
- Issue summary/title-f, --format <format>
- Output format: json, yaml, csv, text (default: text)Examples:
# Create issue with all options specified
imdone add --template story --issue-type Story --location sprint --sprint-id 123 --summary "New feature request" --format json
Interactive prompts (when options not provided):
.imdone/templates
What gets created:
Templates:
If your project has templates in .imdone/templates
, they will be available for selection. Templates provide pre-structured content for consistent issue creation.
π‘ Replay Command: After creating an issue, the CLI will display the exact command to create a similar issue without prompts:
π‘ Next time, use: imdone add --template "story" --issue-type "Story" --location "backlog" --summary "Your issue title"
merge
β Resolve Conflictsimdone merge
After resolving conflicts manually, run this to push fixes to Jira.
move
β Move Issue to New Statusimdone move [<ISSUE_KEY>] [<STATUS>]
Alias: mv
Moves a Jira issue to a new status by performing a transition. If arguments are not provided, the command will prompt for them interactively.
Arguments:
ISSUE_KEY
- The Jira issue key (e.g., PROJ-123)STATUS
- The target status name (case-insensitive)Options:
-f, --format <format>
- Output format: json, yaml, csv, text (default: text)Examples:
# Move issue with specified arguments
imdone move PROJ-123 "In Progress"
# Move issue and output in JSON format
imdone move PROJ-123 "In Progress" --format json
# Interactive mode - prompts for missing arguments
imdone move
# Prompt for status only
imdone move PROJ-123
The command automatically discovers available transitions for the issue and provides an interactive selection if the specified status is not valid.
lint
β Lint Todo Commentsimdone lint
Checks and fixes formatting issues for compatibility with Jira.
reset
β Reset Local Project Stateimdone reset
Options:
-f, --format <format>
- Output format: json, yaml, csv, text (default: text)Removes Jira integration state and pulls fresh data from Jira.
clean
β Clean Project Dataimdone clean
Removes temporary files and data from the project without affecting the core configuration.
destroy
β Remove Integrationimdone destroy
Deletes the config and backlog folder. Prompts for confirmation first.
license
β Manage Licenseimdone license
Options:
--token
--show
Examples:
imdone license --token <your-token>
imdone license --show
show
β Show Issue Detailsimdone show [ISSUE_KEY]
Alias: s
Displays detailed information for a specific Jira issue including description, status, comments, and other fields. If no issue key is provided, you'll be prompted to search and select from existing issues.
Options:
-f, --format <format>
- Output format: json, yaml, csv, text (default: text)Examples:
# Interactive mode - search and select issue
imdone show
# Default text format - markdown-like output
imdone show PROJ-123
# Text format (explicit)
imdone show PROJ-123 --format text
imdone show PROJ-123 -f text
# JSON format - structured data for automation
imdone show PROJ-123 --format json
# YAML format - preserves Jira markup and metadata
imdone show PROJ-123 --format yaml
# CSV format - tabular data
imdone show PROJ-123 --format csv
# Interactive mode with different format
imdone show --format json
list
β Show Current Sprint Issuesimdone list
Alias: ls
Lists all issues in the current sprint by file path, or use custom JQL to filter specific issues.
Options:
-l, --limit <number>
- Limit the number of tasks displayed (default: 0, no limit)-f, --format <format>
- Output format: json, yaml, csv, text (default: text)-j, --jql <query>
- Override default JQL query to filter issues (e.g., "project = PROJ AND assignee = currentUser()")-v, --verbose
- Show the JQL query being usedExamples:
# List all issues in text format (default)
imdone list
# List only 10 issues
imdone list --limit 10
# List issues in JSON format
imdone list --format json
# List limited issues in CSV format
imdone list --limit 5 --format csv
# List issues assigned to current user using custom JQL
imdone list --jql "project = PROJ AND assignee = currentUser()"
# List issues in specific status with verbose output
imdone list --jql "project = PROJ AND status = 'In Progress'" --verbose
# List issues from multiple projects
imdone list --jql "project IN ('PROJ1', 'PROJ2') AND status != 'Done'"
# List high priority issues only
imdone list --jql "project = PROJ AND priority IN ('High', 'Highest')"
# List issues with specific labels
imdone list --jql "project = PROJ AND labels = 'urgent'"
# List issues from current sprint
imdone list --jql "project = PROJ AND sprint in openSprints()"
# List recent issues (created in last 7 days)
imdone list --jql "project = PROJ AND created >= -7d"
JQL (Jira Query Language) Support:
The --jql
option allows you to override the default project JQL configuration with custom queries. This gives you flexibility to view specific subsets of issues without modifying your main project configuration.
JQL Validation:
Common JQL Patterns:
project = KEY AND assignee = currentUser()
- Issues assigned to youproject = KEY AND status IN ("To Do", "In Progress")
- Issues in specific statusesproject = KEY AND sprint in openSprints()
- Current sprint issuesproject = KEY AND fixVersion = "1.0.0"
- Issues for specific versionproject = KEY AND created >= -7d
- Recent issuesproject = KEY AND labels = "label-name"
- Issues with specific labelsNote: When using custom JQL, the command fetches matching issues from Jira and then filters for those that exist in your local project. Use --verbose
to see the exact JQL query being executed.
log
β View Jira Changelogimdone log [<ISSUE_KEY>] [--stats]
Shows changelog for an issue, with optional statistics. If no issue key is provided, you'll be prompted to search and select from existing issues.
Arguments:
ISSUE_KEY
- The Jira issue key (optional)Options:
--stats
- Show statistics for the changelog-f, --format <format>
- Output format: json, yaml, csv, text (default: text)Examples:
# Show changelog for specific issue
imdone log PROJ-123
# Show changelog statistics for specific issue
imdone log PROJ-123 --stats
# Show changelog in JSON format
imdone log PROJ-123 --format json
# Show changelog statistics in YAML format
imdone log PROJ-123 --stats --format yaml
# Interactive mode - search and select issue
imdone log
# Interactive mode with statistics
imdone log --stats
test
β Test Configurationimdone test
Validates connection and permission setup.
hooks
β Git Hooks Managementimdone pull
after git pull
and imdone push
before git push
imdone hooks setup
Options:
--force
- Overwrite existing git hooksThis sets up git hooks that automatically synchronize your Jira issues with git operations:
imdone pull
after each successful git pull
to fetch the latest Jira issuesimdone push
before each git push
to ensure your local Jira changes are synchronizedimdone hooks remove
Removes git hooks that were set up by imdone-cli.
How it works:
post-merge
and pre-push
hooks in .git/hooks/
imdone pull
after successful git merges (which happen during git pull
)imdone push
before git push
operationsimdone push
fails (use git push --no-verify
to bypass)The imdone-cli includes automatic markdown formatting to ensure consistency across your project files. When you run imdone lint
or imdone push
, the following formatting rules are applied:
Example of proper list formatting:
1. First ordered item
- First unordered subitem (4 spaces)
- Nested unordered item (8 spaces)
- Deeper nested item (12 spaces)
2. Second ordered item
- Another unordered subitem (4 spaces)
*like this*
instead of underscores**like this**
instead of underscoresAll default markdownlint rules are applied except for the overrides listed above. These include:
When you run imdone lint
or as part of imdone push
:
All fixes are applied automatically so you don't need to manually correct formatting issues. This ensures that markdown files remain consistently formatted across your project and compatible with Jira integration.
You can add comments to Jira issues directly from your markdown files. Comments are automatically synchronized when you run imdone push
.
How to add a comment:
comments-<ISSUE_KEY>.md
file for the issue you want to comment on---
separatorimdone push
to sync the comment to JiraExample:
# #TODO Comments: SCRUM-31 Enhance markdown to JIRA conversion
This is my new comment! I can use **bold**, _italic_, and other markdown formatting.
The comment supports multiple lines and will be converted to Jira markup automatically.
---
## Jesse Piascik | 2025-07-22T08:57:41.151-0400 | 10173
Here's another comment
---
After running imdone push
, your comment will be posted to the Jira issue and the file will be updated to prevent duplicate posting.
Notes:
---
separatorYou can enforce that certain tasks must have a comment before they can be pushed to Jira by adding commentRequired:true
to the task's metadata.
Example task with required comment:
# #TODO Fix critical login bug
This task will require a comment before it can be pushed to Jira.
<!--
jira:PROJ-123
commentRequired:true
-->
How it works:
imdone push
, the CLI checks if any tasks have commentRequired:true
in their metadataComment required for task "Fix critical login bug" (PROJ-123):
comments-PROJ-123.md
fileWhen to use:
Imdone CLI automatically synchronizes attachments between Jira and your local project, making it easy to access files, images, and documents related to your issues without switching to the browser.
Automatic Download During Pull:
When you run imdone pull
, all attachments from Jira issues are automatically downloaded to local attachments/
folders within each issue directory:
current-sprint/
βββ PROJ-123-Fix_login_bug/
β βββ issue-PROJ-123.md
β βββ comments-PROJ-123.md
β βββ attachments/
β βββ error-screenshot.png
β βββ debug-log.txt
β βββ .metadata.yml
What gets downloaded:
.metadata.yml
for efficient synchronizationAttachment Features:
Accessing Attachments:
Once downloaded, attachments are available in your local file system:
Example Directory Structure:
backlog/current-sprint/
βββ SCRUM-31-Enhance_markdown_conversion/
β βββ issue-SCRUM-31.md
β βββ comments-SCRUM-31.md
β βββ attachments/
β βββ my-profile-image.jpeg # Downloaded from Jira
β βββ requirements-document.pdf # Downloaded from Jira
β βββ .metadata.yml # Tracks sync status
Technical Notes:
.metadata.yml
file tracks download status and shouldn't be manually editedbacklogDir
from .imdone-cli.yml
You can customize which Jira issues are pulled by modifying the JQL (Jira Query Language) in your project configuration:
Location: .imdone/config.yml
plugins:
imdone-jira:
jql: 'project = "YOUR-PROJECT" AND status != Done ORDER BY rank ASC'
Common JQL examples:
# Pull only issues assigned to you
jql: 'project = "PROJ" AND assignee = currentUser() AND status != Done ORDER BY rank ASC'
# Pull issues from specific sprint
jql: 'project = "PROJ" AND sprint in openSprints() ORDER BY rank ASC'
# Pull issues by labels
jql: 'project = "PROJ" AND labels in ("frontend", "backend") ORDER BY rank ASC'
# Pull issues from multiple projects
jql: 'project in ("PROJ1", "PROJ2") AND status != Done ORDER BY rank ASC'
# Pull only high priority issues
jql: 'project = "PROJ" AND priority in ("High", "Highest") ORDER BY rank ASC'
Tips:
ORDER BY rank ASC
clause ensures issues appear in your backlog priority orderimdone reset
to refresh your local issues with the new querycurrentUser()
, openSprints()
, and now()
Imdone CLI uses git to make it easier for the rest of your team to get the project configured. Git is also used to track changes to your backlog files, so you can resolve conflicts and easily revert to previous versions if needed.
In most cases, you should let imdone-cli
handle Git operations for you. Itβs designed to commit and sync changes safely so you can stay focused on your work.
If you run into a Git conflict, just resolve it in your editor, then run imdone merge
.
Check your token:
imdone license --show
Ensure:
imdone-debug pull > debug.log
Use for support diagnostics.
imdone list
and imdone ls
commands with custom JQL query capability
--jql
option to override default project JQL configuration for flexible issue filtering--verbose
option to display the actual JQL query being executedimdone show
command with better format support and interactive prompts
--format
option support for structured output (json, yaml, csv, text)imdone ls
for consistencyimdone init
command safety
imdone init
when .imdone-cli.yml
file exists in ancestor directories.gitignore
file formatting
.gitignore
files for cleaner formatting/rest/api/3/search/jql
when /rest/api/2/search
returns 410 - GONEimdone clear
command more robust
-f, --format
option to major commands for structured data output
json
, yaml
, csv
, text
(default)list
, log
, pull
, add
, move
, reset
commandsfatal: pathspec ...metadata.yml did not match any files
imdone add
command for creating new Jira issues directly from the CLI
--template
, --issue-type
, --location
, --sprint-id
, --summary
.imdone/templates
for consistent issue structureimdone move
command
imdone pull
to remove empty issue foldersimdone push
attachments/
directories within issue foldersbacklogDir
locationimdone pull
imdone move
command with intelligent issue key selection
imdone log
command with fuzzy search capabilities
imdone pull
attachments/
foldersimdone move
command to change Jira issue statuses directly from the command line
imdone move <issue-key> <status>
to move an issue to a specific statusmv
for shorter commandsimdone pull
to sync the updated status to your local files. If the selected status is the same as the current status, no changes are made and no sync occurs.imdone list
to display issues in proper rank order, making it easier to find the next most important things to work on--limit
option to imdone list
and imdone ls
commands for controlling the number of displayed tasks
-l
or --limit <number>
to show only the first N tasksimdone clone
and imdone init
commands with better help text and guidance links
assignedTo
: Display name of the person assigned to the issueassignedToEmail
: Email address of the assigneereporter
: Display name of the person who created the issuereporterEmail
: Email address of the reportercommentRequired
metadata support to enforce comments on specific tasks
commentRequired:true
must have a comment before they can be pushed to Jiraimdone push
imdone push
imdone hooks
command with setup and remove subcommands for automatic synchronization
imdone pull
after successful git pull operationsimdone push
before git push and blocks push if imdone sync fails.imdone-cli.yml
in git repository or parent directories--force
flag for existing hook managementimdone pull
to keep workspace cleancurrent-sprint/**/*
to ignore files for better git managementimdone init
imdone pull
for better organization<br>
tags in markdownimdone list
(alias ls
) with better formatting
imdone show <ISSUE_KEY>
command (alias s
)
FAQs
An imdone cli that automates your jira updates with markdown files.
The npm package imdone-cli receives a total of 161 weekly downloads. As such, imdone-cli popularity was classified as not popular.
We found that imdone-cli demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago.Β It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket Fix 2.0 brings targeted CVE remediation, smarter upgrade planning, and broader ecosystem support to help developers get to zero alerts.
Security News
Socket CEO Feross Aboukhadijeh joins Risky Business Weekly to unpack recent npm phishing attacks, their limited impact, and the risks if attackers get smarter.
Product
Socketβs new Tier 1 Reachability filters out up to 80% of irrelevant CVEs, so security teams can focus on the vulnerabilities that matter.