A fast, token-efficient CLI for Atlassian Cloud. 140+ typed commands across Jira, Jira Software, and Confluence so AI agents can work without burning tokens on API discovery.
- Static command tree:
shrug <product> <entity> <verb>with 37 entities and 140+ commands - Three Atlassian products with a single binary: Jira , Jira Software , Confluence
- Typed flags for every command:
--summary,--project,--type,--status,--label, etc. - Three output formats: JSON, table, CSV with TTY detection
- Template generation:
shrug templategenerates JSON scaffolds for--from-json - Claude Code skill:
shrug install-skillinstalls an AI assistant skill for Atlassian workflows - Multi-profile authentication with OS keychain storage, OAuth 2.0 (PKCE), and encrypted file fallback
- Markdown input: write issue descriptions in Markdown (auto-converted to ADF or Confluence storage format)
- JQL shorthand:
--project,--assignee me,--statusflags build JQL queries - Global flags:
--dry-run,--web,--limit,--output,--fields - Cross-platform: Windows, macOS, Linux
Homebrew:
brew tap mfassaie/tap
brew install shrugShell installer:
curl -fsSL https://github.com/mfassaie/shrug/releases/latest/download/install.sh | shScoop:
scoop bucket add mfassaie https://github.com/mfassaie/scoop-bucket
scoop install shrugPowerShell installer:
powershell -ExecutionPolicy ByPass -c "irm https://github.com/mfassaie/shrug/releases/latest/download/install.ps1 | iex"Download the binary directly [GitHub Releases](https://github.com/mfassaie/shrug/releases)cargo install --git https://github.com/mfassaie/shrugshrug profile create work --site mysite.atlassian.net --email me@company.com
shrug auth set-token --profile work
shrug profile use work# List issues
shrug jira issue list --project PROJ --status "In Progress"
# Create an issue
shrug jira issue create --summary "Fix login bug" --project PROJ --type Bug
# View an issue
shrug jira issue view PROJ-123
# Edit an issue
shrug jira issue edit PROJ-123 --priority High --label urgent# List pages in a space
shrug confluence page list --space-id 12345
# Create a page with markdown body
shrug confluence page create --space-id 12345 --title "Meeting notes" --body "## Agenda\n- Item one"
# View a page
shrug confluence page view 67890# List boards
shrug jira-software board list
# List sprints for a board
shrug jira-software sprint list --board-id 1
# View an epic
shrug jira-software epic view 10001shrug jira issue view PROJ-123 --output json
shrug jira issue list --project PROJ --output csv
shrug jira issue view PROJ-123 --output table --fields key,summary,status# Generate all templates
shrug template all --output-dir ./templates
# Generate a single template
shrug template jira issue create --output-dir ./templates
# Use a template
shrug jira issue create --from-json templates/jira-issue-create.json# Install for all projects
shrug install-skill --scope user
# Install for current project only
shrug install-skill --scope projectshrug <product> <entity> <verb> [flags]
| | |
| | └── list, create, view, edit, delete
| └────────── issue, page, board, sprint, space, ...
└──────────────────── jira, jira-software, confluence
Sub-entities nest under their parent: shrug jira issue comment create PROJ-123 --body "Fixed".
| Product | Command | Alias | Entities | Commands |
|---|---|---|---|---|
| Jira Cloud | shrug jira |
j |
16 | 63 |
| Jira Software | shrug jira-software |
jsw |
3 | 12 |
| Confluence | shrug confluence |
c, conf |
18 | 65 |
shrug supports two authentication methods.
API token (Basic Auth) — the simplest option. Generate a token at id.atlassian.com/manage-profile/security/api-tokens.
OAuth 2.0 (3LO with PKCE) — for automated workflows. Run shrug auth login to open a browser flow. Tokens refresh automatically.
Credentials are stored in the OS keychain (macOS Keychain, Windows Credential Manager, Linux Secret Service). An encrypted file fallback is available when the keychain is not accessible.
For CI/CD, set SHRUG_SITE, SHRUG_EMAIL, and SHRUG_API_TOKEN environment variables.
shrug uses layered TOML configuration with this precedence:
- Command-line flags (highest)
- Environment variables (
SHRUG_*) - Project config (
.shrug.tomlin current directory or git root) - User config (
~/.config/shrug/config.toml) - Built-in defaults (lowest)
