Unified CLI tools for Atlassian Cloud products.
Consolidation note: This repo is the home for both
jtk(Jira CLI) andcfl(Confluence CLI), previously maintained as separate repos (jira-ticket-cli and confluence-cli). Those repos are now archived. All development happens here.
- Tools
- Installation
- Migrating from the Old Repos
- Getting Started
- jtk - Jira CLI
- cfl - Confluence CLI
- Shell Completion
- Development
- Contributing
- License
| Tool | Description | Full Documentation |
|---|---|---|
jtk |
Jira Cloud CLI for issues, sprints, and boards | jtk README |
cfl |
Confluence Cloud CLI for markdown-first page management | cfl README |
Homebrew (recommended)
# Install jtk (Jira CLI)
brew install open-cli-collective/tap/jira-ticket-cli
# Install cfl (Confluence CLI)
brew install open-cli-collective/tap/cfl
# Upgrade to latest
brew upgrade jira-ticket-cli cflNote: If
brew upgradedoesn't pick up a new version, your local tap may be stale. Rungit -C $(brew --repository open-cli-collective/tap) pullto refresh it, then retry the upgrade.
Binary download
Download from the Releases page for your architecture (Intel or Apple Silicon).
Chocolatey
# Install jtk
choco install jira-ticket-cli
# Install cfl
choco install confluence-cliWinget
# Install jtk
winget install OpenCLICollective.jira-ticket-cli
# Install cfl
winget install OpenCLICollective.cflBinary download
Download from the Releases page for your architecture.
Debian/Ubuntu (APT)
# Download the .deb package from Releases
sudo dpkg -i jtk_*.deb
sudo dpkg -i cfl_*.debRPM-based (Fedora, RHEL, etc.)
# Download the .rpm package from Releases
sudo rpm -i jtk-*.rpm
sudo rpm -i cfl-*.rpmBinary download
Download from the Releases page for your architecture (amd64 or arm64).
Requires Go 1.21 or later.
git clone https://github.com/open-cli-collective/atlassian-cli.git
cd atlassian-cli
make build
# Binaries are in bin/If you previously installed from jira-ticket-cli or confluence-cli:
Homebrew users:
# If you installed via the 'jtk' cask (legacy)
brew uninstall jtk
brew install open-cli-collective/tap/jira-ticket-cli
# If you installed via 'jira-ticket-cli', you're already set — just upgrade
brew upgrade jira-ticket-cli
# If brew upgrade says "already installed" but you're on an old version,
# refresh your local tap first:
git -C $(brew --repository open-cli-collective/tap) pull
brew upgrade jira-ticket-cliGitHub release users:
All future releases are published here. Update your bookmarks/scripts to download from: https://github.com/open-cli-collective/atlassian-cli/releases
Your existing configuration (~/.config/jtk/ and ~/.config/cfl/) is unchanged — no reconfiguration needed.
Both tools support interactive setup:
# Configure Jira credentials
jtk init
# Configure Confluence credentials
cfl initThe init wizards will prompt for:
- Atlassian URL (e.g.,
https://mycompany.atlassian.net) - Email address
- API token
Configuration is stored in:
- jtk:
~/.config/jtk/config.json - cfl:
~/.config/cfl/config.yml
Both tools use Atlassian API tokens for authentication. To create a token:
- Go to Atlassian Account Settings
- Click "Create API token"
- Give it a descriptive label (e.g., "CLI Tools")
- Copy the token and use it during
initor set it as an environment variable
Use ATLASSIAN_* environment variables for shared authentication across both tools:
| Variable | Description |
|---|---|
ATLASSIAN_URL |
Base URL (e.g., https://mycompany.atlassian.net) |
ATLASSIAN_EMAIL |
Your Atlassian account email |
ATLASSIAN_API_TOKEN |
Your API token |
Tool-specific variables take precedence:
- jtk:
JIRA_URL,JIRA_EMAIL,JIRA_API_TOKEN - cfl:
CFL_URL,CFL_EMAIL,CFL_API_TOKEN
Example:
# Set shared credentials (used by both tools)
export ATLASSIAN_URL="https://mycompany.atlassian.net"
export ATLASSIAN_EMAIL="you@example.com"
export ATLASSIAN_API_TOKEN="your-api-token"
# Now both tools work without additional configuration
jtk issues list --project PROJ
cfl page list --space DEVManage Jira issues, sprints, and boards from the command line.
# List issues in a project
jtk issues list --project PROJ
# Create an issue
jtk issues create --project PROJ --type Task --summary "Fix bug"
# View issue details
jtk issues get PROJ-123
# Search with JQL
jtk issues search "project = PROJ AND status = 'In Progress'"
# List transitions and move issue
jtk transitions list PROJ-123
jtk transitions do PROJ-123 "Done"
# Manage comments
jtk comments list PROJ-123
jtk comments add PROJ-123 "This is fixed"
# View current sprint
jtk sprints current --board 123
# Manage attachments
jtk attachments list PROJ-123
jtk attachments add PROJ-123 --file screenshot.png
jtk attachments get 12345 --output ./downloads/Full documentation: tools/jtk/README.md
Manage Confluence pages with a markdown-first workflow.
# List pages in a space
cfl page list --space DEV
# View page in markdown
cfl page view 123456
# Create page from markdown
cfl page create --space DEV --title "New Page" --file content.md
# Edit page in your editor
cfl page edit 123456
# Search pages
cfl page search "my search query"
cfl page search --cql "space = DEV AND type = page"
# Copy a page
cfl page copy 123456 --title "Copy of Page"
# List spaces
cfl space list
# Manage attachments
cfl attachment list 123456
cfl attachment upload 123456 --file diagram.png
cfl attachment download 123456 image.png --output ./Full documentation: tools/cfl/README.md
Both tools support shell completion for bash, zsh, and fish.
Bash:
# jtk
jtk completion bash > /etc/bash_completion.d/jtk
# cfl
cfl completion bash > /etc/bash_completion.d/cflZsh:
# jtk
jtk completion zsh > "${fpath[1]}/_jtk"
# cfl
cfl completion zsh > "${fpath[1]}/_cfl"Fish:
# jtk
jtk completion fish > ~/.config/fish/completions/jtk.fish
# cfl
cfl completion fish > ~/.config/fish/completions/cfl.fishThis is a Go workspace monorepo. Both tools can be built and tested together.
# Build both tools
make build
# Run all tests
make test
# Run linter
make lint
# Build, test, and lint
make all
# Build individual tools
make build-jtk
make build-cfl
# Run tests for a specific tool
go test ./tools/jtk/...
go test ./tools/cfl/...atlassian-cli/
├── go.work # Go workspace file
├── Makefile # Build automation
├── shared/ # Shared packages (auth, client, errors)
└── tools/
├── cfl/ # Confluence CLI
│ ├── api/ # API client
│ ├── cmd/cfl/ # Entry point
│ └── internal/ # Commands and config
└── jtk/ # Jira CLI
├── api/ # API client
├── cmd/jtk/ # Entry point
└── internal/ # Commands and config
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feat/my-feature) - Make your changes with tests
- Run
make allto verify - Commit with conventional commit messages (
feat:,fix:, etc.) - Push and create a pull request
See the individual tool CLAUDE.md files for detailed development guidance:
MIT License. See LICENSE for details.