atl
atl fetches Atlassian (Jira + Confluence) content from the terminal and
renders the HTML returned by the REST APIs as clean Markdown. It's built for AI
agents: view folds a work item or page and its context — comments, links,
sub-tasks, children, attachments — into a single Markdown document, and every
command has an --output json mode for scripting.
For anything the curated commands don't cover, atl api is a raw, authenticated
passthrough to the Atlassian REST API, modeled on gh api: hit a real Jira
(/rest/...) or Confluence (/wiki/...) path for reads or writes, subject to your
token's scopes. The product is inferred from the path (override with --product),
and requests only ever reach your configured host.
Install
uv tool install atl-cli
This installs the atl command (also installed as atl-cli).
Authentication
Credentials are stored per Atlassian product. Run atl auth login jira and/or
atl auth login confluence; each prompts for your site URL, your Atlassian email,
and an API token,
then verifies it before saving.
Two token kinds work, detected automatically at login:
- A classic ("full access") token talks to your site directly and covers both products.
- A scoped token ("Create API token with scopes") is locked to one product and reaches the API through Atlassian's gateway. Logging in a read-only scoped token enforces read-only access — writes are rejected by Atlassian itself, not the tool.
To mint a read-only scoped token: "Create API token with scopes", set a name and expiry, pick the product, choose Scope Type: Classic, and select these Scope Actions:
- Jira —
Read. - Confluence —
Read,Read Only, andSearch(search:confluenceis required foratl confluence search; without it search returns "scope does not match" whileviewstill works).
Where credentials live: non-secret metadata (site URL and username) goes to
~/.config/atl-cli/credentials.json (mode 600; honors XDG_CONFIG_HOME); the API
token goes to your OS keyring (per product), falling back to that same file if no
keyring backend is available.
atl auth status [product] shows an account and re-verifies its token; atl auth logout [product] removes a product's credentials. Omit the product for all
configured products.
Usage
atl jira view <KEY> work item + comments, links, sub-tasks,
attachments (+ epic children, for epics)
atl jira search <jql> search work items with JQL
atl jira download-attachment <id> download a work-item attachment by id
atl confluence view <id> wiki page + child pages + attachments
atl confluence search <cql> search pages with CQL
atl confluence download-attachment <id> download a page attachment by id
atl api <endpoint> raw authenticated REST request to any
Jira/Confluence endpoint (gh-style)
atl auth login <product> save/update a product's credentials
atl auth logout|status [product] remove/show creds (omit product = all)
Common options: --web (open in a browser instead of rendering), --output json
(raw API JSON for scripting), --limit <n> (cap search results; default: all). Run
atl --help or atl <command> --help for the rest.
Examples
atl jira view PROJ-123 # render a work item as Markdown
atl jira search 'assignee = currentUser() AND statusCategory != Done'
atl confluence view 123456 # render a page (numeric id)
atl confluence search 'text ~ "onboarding"'
atl jira view PROJ-123 --web # open in a browser instead
atl api /rest/api/3/myself # raw REST call, pretty-printed JSON
atl api /wiki/api/v2/pages -f limit=5 -X GET # a field defaults to POST; -X GET forces a query
# write with a raw body (add a Jira comment, in Atlassian Document Format):
echo '{"body":{"type":"doc","version":1,"content":[{"type":"paragraph","content":[{"type":"text","text":"hi"}]}]}}' |
atl api /rest/api/3/issue/PROJ-123/comment --input -
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file atl_cli-0.6.2.tar.gz.
File metadata
- Download URL: atl_cli-0.6.2.tar.gz
- Upload date:
- Size: 32.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d9a17e54ea9e065b1f089c486544e6032be28ea9b199da367aacdc6796d9475e
|
|
| MD5 |
296e52a063e9bd8b318efe9107378c04
|
|
| BLAKE2b-256 |
110087553b5d6ced0f022e4d13034eb0c47cd068b3265cd5489a022bb8e90d22
|
File details
Details for the file atl_cli-0.6.2-py3-none-any.whl.
File metadata
- Download URL: atl_cli-0.6.2-py3-none-any.whl
- Upload date:
- Size: 37.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7b9d830fd11b72045927f743a15b4231f07b54efd622a80e3079333e5dec8b70
|
|
| MD5 |
01419c21d045f39f6850ea6c5030a392
|
|
| BLAKE2b-256 |
215856c64fa81804b5f9ed60f5014d0b3964d64ba649af7c220b134db3ff5e12
|