tkt is a command-line tool that allows you to pull JIRA tickets, edit them locally as Markdown, and push changes back. Work with JIRA tickets using your favorite text editor and tools!
- 📝 Local Editing: Edit JIRA tickets as plain Markdown files with YAML frontmatter
- 🔄 Bidirectional Sync: Fetch tickets from JIRA and push changes back
- 🔍 Full-text Search: Search through ticket content using grep-like functionality
- 📊 SQL Queries: Query ticket metadata using SQL syntax
- 🎯 Diff Support: View differences between local and remote versions
The core workflow is simple:
- pull - Download JIRA tickets as Markdown files
- edit - Modify tickets locally using any text editor
- push - Sync changes back to JIRA
go install github.com/qawatake/tkt/cmd/tkt@latest
First, create a JIRA API token at https://id.atlassian.com/manage-profile/security/api-tokens and set it as an environment variable:
export JIRA_API_TOKEN=your_token_here
tkt init
This creates a tkt.yml
configuration file in your current directory with your JIRA server details and authentication.
tkt pull
Downloads JIRA tickets as Markdown files to ./tmp/
(configurable).
Open and edit the Markdown files in your preferred editor. Each ticket includes:
---
key: PRJ-123
status: In Progress
assignee: qawatake@example.com
summary: Fix authentication bug
---
# PRJ-123: Fix authentication bug
## Description
The authentication system has a bug that prevents users from logging in...
## Acceptance Criteria
- [ ] Users can log in successfully
- [ ] Error messages are clear
tkt push
Syncs your local changes back to JIRA.
Query ticket metadata interactively using SQL syntax (requires DuckDB to be installed):
tkt query
Search through ticket content interactively:
tkt grep
View differences between local and remote versions (similar to git diff):
tkt diff
tkt init
- Initialize configuration in current directorytkt fetch
- Download JIRA tickets as Markdown filestkt pull
- Download JIRA tickets as Markdown files (fetch + merge)tkt push
- Upload local changes to JIRAtkt diff
- Show differences between local and remote (like git diff)tkt merge
- Merge remote changes with local editstkt query
- Interactive SQL queries for ticket metadata (requires DuckDB)tkt grep
- Interactive full-text search through ticket content