How It Works (3 Commands)
imdone pullimdone pull
✔ Linting completed successfully
✔ Pulled 6 existing and 0 new issues from provider
✔ Issues:
╔═════╤════════════════════════════════════════════════════╤════════╤══════════╤══════╤═════════════════════════════════════════════════╗
║ Key │ Summary │ Status │ Assignee │ Type │ URL ║
╟─────┼────────────────────────────────────────────────────┼────────┼──────────┼──────┼─────────────────────────────────────────────────╢
║ 1 │ View my current tasks │ open │ piascikj │ │ https://github.com/imdone/demo-project/issues/1 ║
╟─────┼────────────────────────────────────────────────────┼────────┼──────────┼──────┼─────────────────────────────────────────────────╢
║ 2 │ Add task to my backlog │ open │ │ │ https://github.com/imdone/demo-project/issues/2 ║
╟─────┼────────────────────────────────────────────────────┼────────┼──────────┼──────┼─────────────────────────────────────────────────╢
║ 3 │ Move task to in-progress │ open │ │ │ https://github.com/imdone/demo-project/issues/3 ║
╚═════╧════════════════════════════════════════════════════╧════════╧══════════╧══════╧═════════════════════════════════════════════════╝
✔ Pull operation completed in 2.6sPull issues from Jira or GitHub into markdown files in your repo
$ vim backlog/current-sprint/1-View_my_current_tasks/issue-1.md
# #TODO View my current tasks
**Story:**
As a developer,
I want to see my current sprint tasks in my terminal,
So that I know what to work on without opening Jira.
## Context
**Current State:** Must open Jira in browser to see assigned tasks
**Pain Point:** Context switching breaks flow
**Desired State:** `imdone ls` shows my tasks in terminal
## Acceptance CriteriaWork on issues in your favorite editor—vim, VS Code, whatever
imdone push> imdone push
✔ Linting completed successfully
✔ Pulled 3 existing and 0 new issues from provider
ℹ 📤 Pushing 1 update to provider...
ℹ 🔍 Checking for comments and attachments...
✔ Pushed 1 task to provider
ℹ Issues pushed to provider:
╔═════╤════════════════════════════════════════════════════╤════════╤══════════╤══════╤═════════════════════════════════════════════════╗
║ Key │ Summary │ Status │ Assignee │ Type │ URL ║
╟─────┼────────────────────────────────────────────────────┼────────┼──────────┼──────┼─────────────────────────────────────────────────╢
║ 1 │ View my current tasks │ open │ piascikj │ │ https://github.com/imdone/demo-project/issues/1 ║
╚═════╧════════════════════════════════════════════════════╧════════╧══════════╧══════╧═════════════════════════════════════════════════╝
✔ Push operation completed in 4.1sSync your changes back to Jira or GitHub
The Problem: Context Switching Kills Productivity
Alt+Tab to Jira
Open browser → wait for load → navigate → find ticket → read → switch back to editor. Repeat 20 times per day.
Can't grep Jira
Want to find all authentication-related issues? Open Jira, type in search box, wait, click through results. Takes 5 minutes.
Two systems to update
Changed your approach? Update the code, then switch to Jira, update the ticket, switch back. Context lost twice.
Need internet to work
Plane? Coffee shop? Flaky WiFi? Can't access Jira = can't see your tasks. Work blocked.
Keep Plans and Code Together
Issues as files in your repo. Work locally, sync automatically. Best of both worlds—local files with team visibility.
Bidirectional Sync
Changes in Jira/GitHub → pull to local. Changes local → push to Jira/GitHub. Always in sync.
Works Offline
Edit issues on a plane, in a coffee shop, anywhere. Sync when you're back online.
Git-Style Conflicts
Multiple people editing the same issue? Conflict resolution works like git merge. You already know how.
Real Example: Jira Issue as Markdown
Navigate through UI, click tabs, scroll through comments...
# #TODO View my current tasks
**Story:**
As a developer,
I want to see my current sprint tasks in my terminal,
So that I know what to work on without opening Jira.
## Context
**Current State:** Must open Jira in browser to see assigned tasks
**Pain Point:** Context switching breaks flow
**Desired State:** `imdone ls` shows my tasks in terminal
## Acceptance Criteria
- [ ] Given I have 5 tasks in current sprint, When I run `imdone ls`, Then I see all 5 tasks
- [ ] Given a task has status "To Do", When I run `imdone ls`, Then status displays correctly
- [ ] Given a task has priority "High", When I run `imdone ls`, Then priority is visible
- [ ] Given no tasks exist, When I run `imdone ls`, Then I see "No tasks found"
## Examples
Now you can:
# Find all "terminal" issues
$ grep -r "terminal" backlog/
# Edit in vim
$ vim backlog/current-sprint/1-View_my_current_tasks/issue-1.md
# Sync changes back
$ imdone push
Built for Developers Who Live in the Terminal
Jira Integration
Full support for Jira Cloud and Jira Server. JQL queries, sprints, custom fields, attachments.
GitHub Issues
Sync GitHub issues to markdown. Search syntax, labels, milestones, assignees—all supported.
Version Control
Issues are files. Files go in git. Full history of every change to every issue.
CLI First
Built for developers who live in the terminal. Follows git conventions (pull/push/status).
Team Friendly
Your team keeps using Jira/GitHub UI. You work locally. Everyone stays in sync automatically.
Secure
Authentication tokens stored locally in .env (gitignored). Uses official Jira/GitHub APIs.
Installation
Install via npm
$ npm install -g imdone-cliInitialize in your project
$ cd your-project
$ imdone init
Choose provider: Jira or GitHub
Configure authentication
Start syncing
$ imdone pull # Fetch issues
$ imdone push # Sync back
$ imdone log # See changes
Full documentation: imdone-cli on npm
Common Commands
imdone pullFetch issues from Jira/GitHub to local markdown files
imdone pushSync local changes back to Jira/GitHub
imdone mergeResolve conflicts when both local and remote changed
imdone logShow which issues changed locally or remotely
imdone lsList local issues with filtering options
imdone templateApply templates to issues (bug, feature, etc)
Common Questions
Does this replace Jira or GitHub?
No. Your team keeps using Jira/GitHub normally. You work locally and sync changes. Everyone sees the same data.
What happens if two people edit the same issue?
Git-style conflict resolution. You see both versions, choose what to keep, then push. Just like resolving code merge conflicts.
Can I work offline?
Yes. Pull issues before you lose internet. Edit locally. Push when you're back online. Perfect for planes, coffee shops, remote work.
Does this work with custom Jira fields?
Yes. Custom fields map to markdown frontmatter. Sprint, story points, labels, custom dropdowns—all supported.
Can I use this with Imdone Desktop?
Yes! Pull issues with imdone-cli, visualize them in Imdone Desktop. Same files, different views.
Ready to Stop Alt-Tabbing to Jira?
Install imdone-cli and work on issues in your editor.