@simplysf/simply-atlassian
v0.13.0
Published
Command-line interface for working with Atlassian products
Downloads
706
Readme
@simplysf/simply-atlassian
Command-line interface for working with Atlassian products, built by SimplySF.
Covers Jira issues — search, view, create, update, transition, and delete — plus reading
Confluence pages. Output is human-readable by default and raw JSON with --json, and every
command that changes data takes --dry-run, so it is usable both at a terminal and by a script
or agent. See Commands below for the full reference.
Verified against Jira and Confluence Cloud. Server/Data Center is implemented but not yet verified against a live instance.
Documentation
Guides and the full command reference: https://simplysf.github.io/simply-cli/atlassian/
The guides also ship inside this package, under docs/.
Install
@simplysf/simply-atlassian is a plugin of the simply CLI, not a command of its own. Install the host; this
plugin installs itself the first time you run one of its commands.
npm install -g @simplysf/simply-cli
simply atlassian --helpTo install it ahead of time — in CI, a container image, or offline:
simply plugins install @simplysf/simply-atlassianUpgrading from a standalone install? This package used to own the
simplycommand itself, which meant it could not be installed alongside SimplySF's other CLIs. It is now a plugin. Runnpm uninstall -g @simplysf/simply-atlassianand install@simplysf/simply-cliinstead. Your commands do not change —simply atlassian …is exactly what it was.
Issues
Please report any issues at https://github.com/SimplySF/simply-atlassian/issues
Contributing
This package is part of the @simplysf/simply-atlassian monorepo. See the repo's CONTRIBUTING.md for the repo structure, how to set up and build the project, our commit conventions, and how to submit a pull request. Please also read our Code of Conduct.
Credentials
Connection settings come from environment variables, or from a .env file named with
-e/--env-file. Only Atlassian connection variables are read from that file; anything else in
it is ignored.
JIRA_URL=https://your-site.atlassian.net
[email protected] # Cloud
JIRA_API_TOKEN=... # Cloud
JIRA_PERSONAL_TOKEN=... # Server/Data Center, instead of the two above
CONFLUENCE_URL=https://your-site.atlassian.net
[email protected]
CONFLUENCE_API_TOKEN=...Explicit flags beat the environment, which beats the file's contents. Certificate verification
is always on: for an instance behind an internal or agency CA, trust that CA with
NODE_EXTRA_CA_CERTS=/path/to/ca.pem rather than disabling verification.
Write safety
The commands that change data — issue create, update, transition — and the one that
destroys it — issue delete — sit behind three layers. Only the last is a real boundary, and
it is worth being clear about which is which.
--confirm is required by issue delete, and by nothing else. It stops accidents: a
malformed command, a mistyped key. It does not stop a caller that decides to pass it, and
requiring it everywhere would train callers to pass it always — at which point it protects
nothing while still implying that it does.
--dry-run is accepted by every write command. It prints the request that would be sent
and sends nothing, which is the cheapest way to see what is about to happen.
ATLASSIAN_READ_ONLY — set it to 1, true, yes, or on and every write command
refuses before making any request. Reads are unaffected. This guards against
misconfiguration: the wrong credential file, the wrong context. It is not a security boundary,
because anything that can run commands can also unset an environment variable.
A read-scoped API token is the only layer that actually binds. Atlassian's scoped API tokens grant named scopes, so a token with read scopes and no write scopes cannot create, edit, or delete anything — the instance refuses server-side, regardless of what this CLI sends or what any caller is persuaded to attempt.
That matters most when an AI agent drives the CLI, because ticket and page text is written by whoever can edit it, and an agent reading that text cannot reliably tell instructions from content. The arrangement worth adopting is two credential files:
~/atlassian.env # read-scoped token — what the agent uses by default
~/atlassian-write.env # write-capable token — passed explicitly, by a personsimply atlassian jira issue search -e ~/atlassian.env --jql "project = PROJ"
simply atlassian jira issue delete PROJ-1 -e ~/atlassian-write.env --confirmThe agent's normal loop is then structurally incapable of changing anything, and a write becomes a deliberate act. A 403 from a read-scoped token is reported as an authentication error that says the credential cannot make changes, rather than looking like a permissions bug.
Commands
simply atlassian confluence open PAGEsimply atlassian confluence page children PAGEsimply atlassian confluence page comment add PAGEsimply atlassian confluence page comment list PAGEsimply atlassian confluence page createsimply atlassian confluence page delete PAGEsimply atlassian confluence page get PAGEsimply atlassian confluence page label add PAGEsimply atlassian confluence page label list PAGEsimply atlassian confluence page searchsimply atlassian confluence page update PAGEsimply atlassian jira board listsimply atlassian jira fieldssimply atlassian jira issue comment add ISSUEsimply atlassian jira issue comment delete ISSUE COMMENTsimply atlassian jira issue comment edit ISSUE COMMENTsimply atlassian jira issue comment list ISSUEsimply atlassian jira issue createsimply atlassian jira issue delete ISSUEsimply atlassian jira issue history ISSUEsimply atlassian jira issue link create FROM TYPE TOsimply atlassian jira issue link delete LINK-IDsimply atlassian jira issue link list ISSUEsimply atlassian jira issue link typessimply atlassian jira issue remotelink create ISSUEsimply atlassian jira issue remotelink delete ISSUE LINK-IDsimply atlassian jira issue remotelink list ISSUEsimply atlassian jira issue searchsimply atlassian jira issue transition ISSUE TRANSITIONsimply atlassian jira issue transitions ISSUEsimply atlassian jira issue update ISSUEsimply atlassian jira issue view ISSUEsimply atlassian jira open TARGETsimply atlassian jira project versions PROJECTsimply atlassian jira projectssimply atlassian jira sprint add SPRINT ISSUEsimply atlassian jira sprint createsimply atlassian jira sprint issues SPRINTsimply atlassian jira sprint list BOARDsimply atlassian jira sprint update SPRINTsimply atlassian jira user search QUERYsimply atlassian jira user view ACCOUNTsimply atlassian jira whoamisimply atlassian jira xray fieldssimply atlassian jira xray path listsimply atlassian jira xray plan listsimply atlassian jira xray set listsimply atlassian jira xray test exportsimply atlassian jira xray test get TESTsimply atlassian jira xray test list
simply atlassian confluence open PAGE
Open a Confluence page in the browser.
USAGE
$ simply atlassian confluence open PAGE [--json] [-e <value>] [--confluence-url <value>] [--confluence-username <value>]
[--confluence-api-token <value>] [--confluence-personal-token <value>] [--print]
ARGUMENTS
PAGE Page id, or a page URL to read the id from.
FLAGS
--print Print the URL without opening a browser.
CONNECTION FLAGS
-e, --env-file=<value> Path to a .env file holding connection settings.
--confluence-api-token=<value> [env: CONFLUENCE_API_TOKEN] API token for Confluence Cloud basic auth.
--confluence-personal-token=<value> [env: CONFLUENCE_PERSONAL_TOKEN] Personal access token for Confluence
Server/Data Center.
--confluence-url=<value> [env: CONFLUENCE_URL] Base URL of the Confluence instance.
--confluence-username=<value> [env: CONFLUENCE_USERNAME] Account email for Confluence Cloud basic auth.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Open a Confluence page in the browser.
Builds the browser URL for a page id or page URL and opens it in the default browser. Use --print (or --url) to print
the URL without launching a browser.
EXAMPLES
$ simply atlassian confluence open 123456
$ simply atlassian confluence open https://site.atlassian.net/wiki/spaces/DOCS/pages/123456/Title --print
$ simply atlassian confluence open 123456 --json
FLAG DESCRIPTIONS
-e, --env-file=<value> Path to a .env file holding connection settings.
Loaded before anything else. Variables already present in the environment win, so the file never overrides an
explicit export, and only Atlassian connection variables are read from it. A path that cannot be read is an error.See code: lib/commands/atlassian/confluence/open.js
simply atlassian confluence page children PAGE
List the direct child pages of a Confluence page.
USAGE
$ simply atlassian confluence page children PAGE [--json] [-e <value>] [--confluence-url <value>] [--confluence-username <value>]
[--confluence-api-token <value>] [--confluence-personal-token <value>] [--limit <value>]
ARGUMENTS
PAGE Page id, or a page URL to read the id from.
FLAGS
--limit=<value> [default: 25] Maximum number of children to return.
CONNECTION FLAGS
-e, --env-file=<value> Path to a .env file holding connection settings.
--confluence-api-token=<value> [env: CONFLUENCE_API_TOKEN] API token for Confluence Cloud basic auth.
--confluence-personal-token=<value> [env: CONFLUENCE_PERSONAL_TOKEN] Personal access token for Confluence
Server/Data Center.
--confluence-url=<value> [env: CONFLUENCE_URL] Base URL of the Confluence instance.
--confluence-username=<value> [env: CONFLUENCE_USERNAME] Account email for Confluence Cloud basic auth.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
List the direct child pages of a Confluence page.
Lists pages one level below the given page. Use --json for the complete, unmodified API payload.
EXAMPLES
$ simply atlassian confluence page children 123456
$ simply atlassian confluence page children https://site.atlassian.net/wiki/spaces/DOCS/pages/123456/Title
$ simply atlassian confluence page children 123456 --limit 50 --json
FLAG DESCRIPTIONS
-e, --env-file=<value> Path to a .env file holding connection settings.
Loaded before anything else. Variables already present in the environment win, so the file never overrides an
explicit export, and only Atlassian connection variables are read from it. A path that cannot be read is an error.See code: lib/commands/atlassian/confluence/page/children.js
simply atlassian confluence page comment add PAGE
Add a comment to a Confluence page.
USAGE
$ simply atlassian confluence page comment add PAGE [--json] [-e <value>] [--confluence-url <value>] [--confluence-username <value>]
[--confluence-api-token <value>] [--confluence-personal-token <value>] [--dry-run] [--text <value>] [--body <value>]
[--body-file <value>] [--markdown <value>] [--markdown-file <value>]
ARGUMENTS
PAGE Page id, or a page URL.
FLAGS
--body=<value> Comment as raw storage-format XHTML.
--body-file=<value> Path to a file holding storage-format XHTML.
--dry-run Print the request that would be sent and exit without sending it.
--markdown=<value> Body as Markdown; converted to storage format.
--markdown-file=<value> Path to a Markdown file; converted to storage format.
--text=<value> Comment as plain text; becomes paragraphs, markup escaped.
CONNECTION FLAGS
-e, --env-file=<value> Path to a .env file holding connection settings.
--confluence-api-token=<value> [env: CONFLUENCE_API_TOKEN] API token for Confluence Cloud basic auth.
--confluence-personal-token=<value> [env: CONFLUENCE_PERSONAL_TOKEN] Personal access token for Confluence
Server/Data Center.
--confluence-url=<value> [env: CONFLUENCE_URL] Base URL of the Confluence instance.
--confluence-username=<value> [env: CONFLUENCE_USERNAME] Account email for Confluence Cloud basic auth.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Add a comment to a Confluence page.
A Confluence comment is content in its own right rather than a field on the page, so it takes the same body flags as a
page: --text for plain prose, or --body/--body-file for storage-format XHTML. Markdown is not supported yet.
EXAMPLES
$ simply atlassian confluence page comment add 123456 --text "Reviewed, looks right."
$ simply atlassian confluence page comment add 123456 --body "<p>See <strong>section 2</strong>.</p>"
$ simply atlassian confluence page comment add 123456 --text "wip" --dry-run
FLAG DESCRIPTIONS
-e, --env-file=<value> Path to a .env file holding connection settings.
Loaded before anything else. Variables already present in the environment win, so the file never overrides an
explicit export, and only Atlassian connection variables are read from it. A path that cannot be read is an error.See code: lib/commands/atlassian/confluence/page/comment/add.js
simply atlassian confluence page comment list PAGE
List a Confluence page's comments.
USAGE
$ simply atlassian confluence page comment list PAGE [--json] [-e <value>] [--confluence-url <value>] [--confluence-username <value>]
[--confluence-api-token <value>] [--confluence-personal-token <value>] [--limit <value>]
ARGUMENTS
PAGE Page id, or a page URL.
FLAGS
--limit=<value> [default: 25] Maximum number of comments to return.
CONNECTION FLAGS
-e, --env-file=<value> Path to a .env file holding connection settings.
--confluence-api-token=<value> [env: CONFLUENCE_API_TOKEN] API token for Confluence Cloud basic auth.
--confluence-personal-token=<value> [env: CONFLUENCE_PERSONAL_TOKEN] Personal access token for Confluence
Server/Data Center.
--confluence-url=<value> [env: CONFLUENCE_URL] Base URL of the Confluence instance.
--confluence-username=<value> [env: CONFLUENCE_USERNAME] Account email for Confluence Cloud basic auth.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
List a Confluence page's comments.
One line per comment. Bodies are stored as XHTML, so the preview column is flattened text; use --json for the
unmodified payload. The ID column is what any later reply or removal needs and is not otherwise discoverable.
EXAMPLES
$ simply atlassian confluence page comment list 123456
$ simply atlassian confluence page comment list 123456 --limit 5 --json
FLAG DESCRIPTIONS
-e, --env-file=<value> Path to a .env file holding connection settings.
Loaded before anything else. Variables already present in the environment win, so the file never overrides an
explicit export, and only Atlassian connection variables are read from it. A path that cannot be read is an error.See code: lib/commands/atlassian/confluence/page/comment/list.js
simply atlassian confluence page create
Create a Confluence page.
USAGE
$ simply atlassian confluence page create --space <value> --title <value> [--json] [-e <value>] [--confluence-url <value>]
[--confluence-username <value>] [--confluence-api-token <value>] [--confluence-personal-token <value>] [--dry-run]
[--parent <value>] [--text <value>] [--body <value>] [--body-file <value>] [--markdown <value>] [--markdown-file
<value>]
FLAGS
--body=<value> Body as raw storage-format XHTML.
--body-file=<value> Path to a file holding storage-format XHTML.
--dry-run Print the request that would be sent and exit without sending it.
--markdown=<value> Body as Markdown; converted to storage format.
--markdown-file=<value> Path to a Markdown file; converted to storage format.
--parent=<value> Parent page id or URL, making this a child of it.
--space=<value> (required) Space key the page belongs to.
--text=<value> Body as plain text; becomes paragraphs, markup escaped.
--title=<value> (required) Page title.
CONNECTION FLAGS
-e, --env-file=<value> Path to a .env file holding connection settings.
--confluence-api-token=<value> [env: CONFLUENCE_API_TOKEN] API token for Confluence Cloud basic auth.
--confluence-personal-token=<value> [env: CONFLUENCE_PERSONAL_TOKEN] Personal access token for Confluence
Server/Data Center.
--confluence-url=<value> [env: CONFLUENCE_URL] Base URL of the Confluence instance.
--confluence-username=<value> [env: CONFLUENCE_USERNAME] Account email for Confluence Cloud basic auth.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Create a Confluence page.
The body is Confluence storage format — XHTML plus Atlassian macro tags — supplied with --body or --body-file.
Markdown input is not supported yet; --text is the shortcut for plain prose, which becomes paragraphs with its markup
characters escaped. Use --parent to place the page under another rather than at the space root, and --dry-run to see
the exact request without sending it.
EXAMPLES
$ simply atlassian confluence page create --space DOCS --title "Release notes" --text "Shipped today."
$ simply atlassian confluence page create --space DOCS --title "Design" --body-file ./page.xml --parent 123456
$ simply atlassian confluence page create --space DOCS --title "Draft" --text "wip" --dry-run
FLAG DESCRIPTIONS
-e, --env-file=<value> Path to a .env file holding connection settings.
Loaded before anything else. Variables already present in the environment win, so the file never overrides an
explicit export, and only Atlassian connection variables are read from it. A path that cannot be read is an error.
--parent=<value> Parent page id or URL, making this a child of it.
Without this the page lands at the space root. A page URL is accepted as well as a bare id.See code: lib/commands/atlassian/confluence/page/create.js
simply atlassian confluence page delete PAGE
Move a Confluence page to the trash, or destroy it.
USAGE
$ simply atlassian confluence page delete PAGE [--json] [-e <value>] [--confluence-url <value>] [--confluence-username <value>]
[--confluence-api-token <value>] [--confluence-personal-token <value>] [--dry-run] [--confirm] [--purge]
ARGUMENTS
PAGE Page id, or a page URL.
FLAGS
--confirm Required to proceed with an irreversible change.
--dry-run Print the request that would be sent and exit without sending it.
--purge Destroy the page permanently instead of trashing it. Requires --confirm.
CONNECTION FLAGS
-e, --env-file=<value> Path to a .env file holding connection settings.
--confluence-api-token=<value> [env: CONFLUENCE_API_TOKEN] API token for Confluence Cloud basic auth.
--confluence-personal-token=<value> [env: CONFLUENCE_PERSONAL_TOKEN] Personal access token for Confluence
Server/Data Center.
--confluence-url=<value> [env: CONFLUENCE_URL] Base URL of the Confluence instance.
--confluence-username=<value> [env: CONFLUENCE_USERNAME] Account email for Confluence Cloud basic auth.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Move a Confluence page to the trash, or destroy it.
By default this trashes the page, which is reversible — it can be restored from the space trash — so no --confirm is
required. --purge destroys it permanently and does require --confirm, because nothing brings it back. A page that is
already trashed is purged directly; one that is not is trashed and then purged, so --purge always means "gone".
EXAMPLES
$ simply atlassian confluence page delete 123456
$ simply atlassian confluence page delete 123456 --purge --confirm
$ simply atlassian confluence page delete 123456 --purge --dry-run
FLAG DESCRIPTIONS
-e, --env-file=<value> Path to a .env file holding connection settings.
Loaded before anything else. Variables already present in the environment win, so the file never overrides an
explicit export, and only Atlassian connection variables are read from it. A path that cannot be read is an error.
--confirm Required to proceed with an irreversible change.
There is deliberately no short form: a single letter is too easy to add by habit. It also takes no value — pass it
bare, never --confirm=true or --confirm=false.See code: lib/commands/atlassian/confluence/page/delete.js
simply atlassian confluence page get PAGE
Show a single Confluence page.
USAGE
$ simply atlassian confluence page get PAGE [--json] [-e <value>] [--confluence-url <value>] [--confluence-username <value>]
[--confluence-api-token <value>] [--confluence-personal-token <value>] [--body-format markdown|storage|none]
[--expand <value>]
ARGUMENTS
PAGE Page id, or a page URL to read the id from.
FLAGS
--body-format=<option> [default: markdown] How to render the page body.
<options: markdown|storage|none>
--expand=<value> Comma-separated Confluence expansions, replacing the default set.
CONNECTION FLAGS
-e, --env-file=<value> Path to a .env file holding connection settings.
--confluence-api-token=<value> [env: CONFLUENCE_API_TOKEN] API token for Confluence Cloud basic auth.
--confluence-personal-token=<value> [env: CONFLUENCE_PERSONAL_TOKEN] Personal access token for Confluence
Server/Data Center.
--confluence-url=<value> [env: CONFLUENCE_URL] Base URL of the Confluence instance.
--confluence-username=<value> [env: CONFLUENCE_USERNAME] Account email for Confluence Cloud basic auth.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Show a single Confluence page.
Prints page metadata followed by its body. The body is converted to Markdown by default; --body-format storage prints
the stored XHTML verbatim, and none omits it entirely (and does not request it, which matters when listing pages whose
content will not be read). Use --json for the complete, unmodified API payload.
EXAMPLES
$ simply atlassian confluence page get 123456
$ simply atlassian confluence page get https://site.atlassian.net/wiki/spaces/DOCS/pages/123456/Title
$ simply atlassian confluence page get 123456 --body-format none
$ simply atlassian confluence page get 123456 --json
FLAG DESCRIPTIONS
-e, --env-file=<value> Path to a .env file holding connection settings.
Loaded before anything else. Variables already present in the environment win, so the file never overrides an
explicit export, and only Atlassian connection variables are read from it. A path that cannot be read is an error.See code: lib/commands/atlassian/confluence/page/get.js
simply atlassian confluence page label add PAGE
Add labels to a page.
USAGE
$ simply atlassian confluence page label add PAGE --label <value>... [--json] [-e <value>] [--confluence-url <value>]
[--confluence-username <value>] [--confluence-api-token <value>] [--confluence-personal-token <value>] [--dry-run]
[--prefix <value>]
ARGUMENTS
PAGE Page id, or a page URL.
FLAGS
--dry-run Print the request that would be sent and exit without sending it.
--label=<value>... (required) Label to add. Repeatable.
--prefix=<value> [default: global] Label namespace.
CONNECTION FLAGS
-e, --env-file=<value> Path to a .env file holding connection settings.
--confluence-api-token=<value> [env: CONFLUENCE_API_TOKEN] API token for Confluence Cloud basic auth.
--confluence-personal-token=<value> [env: CONFLUENCE_PERSONAL_TOKEN] Personal access token for Confluence
Server/Data Center.
--confluence-url=<value> [env: CONFLUENCE_URL] Base URL of the Confluence instance.
--confluence-username=<value> [env: CONFLUENCE_USERNAME] Account email for Confluence Cloud basic auth.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Add labels to a page.
Labels are additive and idempotent: adding one the page already has is not an error, and this reports what the page
carries afterwards rather than implying everything was new. No --confirm, because adding a label loses nothing.
EXAMPLES
$ simply atlassian confluence page label add 123456 --label runbook
$ simply atlassian confluence page label add 123456 --label runbook --label on-call
$ simply atlassian confluence page label add 123456 --label draft --dry-run
FLAG DESCRIPTIONS
-e, --env-file=<value> Path to a .env file holding connection settings.
Loaded before anything else. Variables already present in the environment win, so the file never overrides an
explicit export, and only Atlassian connection variables are read from it. A path that cannot be read is an error.
--prefix=<value> Label namespace.
Confluence namespaces labels; global is what the UI applies and what you almost always want.See code: lib/commands/atlassian/confluence/page/label/add.js
simply atlassian confluence page label list PAGE
List a page's labels.
USAGE
$ simply atlassian confluence page label list PAGE [--json] [-e <value>] [--confluence-url <value>] [--confluence-username <value>]
[--confluence-api-token <value>] [--confluence-personal-token <value>] [--limit <value>]
ARGUMENTS
PAGE Page id, or a page URL.
FLAGS
--limit=<value> [default: 25] Maximum number of labels to show.
CONNECTION FLAGS
-e, --env-file=<value> Path to a .env file holding connection settings.
--confluence-api-token=<value> [env: CONFLUENCE_API_TOKEN] API token for Confluence Cloud basic auth.
--confluence-personal-token=<value> [env: CONFLUENCE_PERSONAL_TOKEN] Personal access token for Confluence
Server/Data Center.
--confluence-url=<value> [env: CONFLUENCE_URL] Base URL of the Confluence instance.
--confluence-username=<value> [env: CONFLUENCE_USERNAME] Account email for Confluence Cloud basic auth.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
List a page's labels.
The PREFIX column is shown because Confluence namespaces labels — global, my, team — and the prefix is part of the
identity, so two different labels can share a name.
EXAMPLES
$ simply atlassian confluence page label list 123456
$ simply atlassian confluence page label list 123456 --json
FLAG DESCRIPTIONS
-e, --env-file=<value> Path to a .env file holding connection settings.
Loaded before anything else. Variables already present in the environment win, so the file never overrides an
explicit export, and only Atlassian connection variables are read from it. A path that cannot be read is an error.See code: lib/commands/atlassian/confluence/page/label/list.js
simply atlassian confluence page search
Search Confluence content with CQL.
USAGE
$ simply atlassian confluence page search --cql <value> [--json] [-e <value>] [--confluence-url <value>] [--confluence-username
<value>] [--confluence-api-token <value>] [--confluence-personal-token <value>] [--limit <value>]
FLAGS
--cql=<value> (required) CQL query to run.
--limit=<value> [default: 25] Maximum number of results to return across all pages.
CONNECTION FLAGS
-e, --env-file=<value> Path to a .env file holding connection settings.
--confluence-api-token=<value> [env: CONFLUENCE_API_TOKEN] API token for Confluence Cloud basic auth.
--confluence-personal-token=<value> [env: CONFLUENCE_PERSONAL_TOKEN] Personal access token for Confluence
Server/Data Center.
--confluence-url=<value> [env: CONFLUENCE_URL] Base URL of the Confluence instance.
--confluence-username=<value> [env: CONFLUENCE_USERNAME] Account email for Confluence Cloud basic auth.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Search Confluence content with CQL.
Runs a CQL query and follows result pages until the limit is reached or the instance has no more matches. Use --json
for the complete, unmodified API payload of every result.
EXAMPLES
$ simply atlassian confluence page search --cql "type = page AND space = DOCS"
$ simply atlassian confluence page search --cql 'text ~ "release notes"' --limit 10
$ simply atlassian confluence page search --cql "type = page order by lastmodified desc" --limit 5 --json
FLAG DESCRIPTIONS
-e, --env-file=<value> Path to a .env file holding connection settings.
Loaded before anything else. Variables already present in the environment win, so the file never overrides an
explicit export, and only Atlassian connection variables are read from it. A path that cannot be read is an error.See code: lib/commands/atlassian/confluence/page/search.js
simply atlassian confluence page update PAGE
Replace a Confluence page's body or title.
USAGE
$ simply atlassian confluence page update PAGE [--json] [-e <value>] [--confluence-url <value>] [--confluence-username <value>]
[--confluence-api-token <value>] [--confluence-personal-token <value>] [--dry-run] [--title <value>] [--text
<value>] [--body <value>] [--body-file <value>] [--markdown <value>] [--markdown-file <value>] [--append]
ARGUMENTS
PAGE Page id, or a page URL.
FLAGS
--append Add the new body to the end of the page instead of replacing it.
--body=<value> Body as raw storage-format XHTML.
--body-file=<value> Path to a file holding storage-format XHTML.
--dry-run Print the request that would be sent and exit without sending it.
--markdown=<value> Body as Markdown; converted to storage format.
--markdown-file=<value> Path to a Markdown file; converted to storage format.
--text=<value> Body as plain text; becomes paragraphs, markup escaped.
--title=<value> New title. Defaults to the page's current title.
CONNECTION FLAGS
-e, --env-file=<value> Path to a .env file holding connection settings.
--confluence-api-token=<value> [env: CONFLUENCE_API_TOKEN] API token for Confluence Cloud basic auth.
--confluence-personal-token=<value> [env: CONFLUENCE_PERSONAL_TOKEN] Personal access token for Confluence
Server/Data Center.
--confluence-url=<value> [env: CONFLUENCE_URL] Base URL of the Confluence instance.
--confluence-username=<value> [env: CONFLUENCE_USERNAME] Account email for Confluence Cloud basic auth.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Replace a Confluence page's body or title.
The version number is handled for you: the page is read, its version incremented, and the result sent. There is no
--version flag, because Confluence refuses a stale version with a conflict rather than overwriting — so if someone
edits the page while this runs, the command fails and says so instead of discarding their work. Re-run it to pick up
their change. This REPLACES the body by default; use --append to add to the end instead.
EXAMPLES
$ simply atlassian confluence page update 123456 --text "Updated status."
$ simply atlassian confluence page update 123456 --body-file ./page.xml
$ simply atlassian confluence page update 123456 --title "Renamed" --dry-run
FLAG DESCRIPTIONS
-e, --env-file=<value> Path to a .env file holding connection settings.
Loaded before anything else. Variables already present in the environment win, so the file never overrides an
explicit export, and only Atlassian connection variables are read from it. A path that cannot be read is an error.
--append Add the new body to the end of the page instead of replacing it.
Reads the page's existing body and puts the new content after it. Without this the body is replaced, which is what a
bare update has always done.See code: lib/commands/atlassian/confluence/page/update.js
simply atlassian jira board list
List Jira agile boards.
USAGE
$ simply atlassian jira board list [--json] [-e <value>] [--jira-url <value>] [--jira-username <value>] [--jira-api-token
<value>] [--jira-personal-token <value>] [--project <value>] [--type <value>] [--limit <value>]
FLAGS
--limit=<value> [default: 50] Maximum number of boards to return.
--project=<value> Filter by project key or id.
--type=<value> Filter by board type: scrum or kanban.
CONNECTION FLAGS
-e, --env-file=<value> Path to a .env file holding connection settings.
--jira-api-token=<value> [env: JIRA_API_TOKEN] API token for Jira Cloud basic auth.
--jira-personal-token=<value> [env: JIRA_PERSONAL_TOKEN] Personal access token for Jira Server/Data Center.
--jira-url=<value> [env: JIRA_URL] Base URL of the Jira instance.
--jira-username=<value> [env: JIRA_USERNAME] Account email for Jira Cloud basic auth.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
List Jira agile boards.
Lists boards visible to the current Jira user. Use --project to restrict boards by project key or id, and --json for
the complete paginated response.
EXAMPLES
$ simply atlassian jira board list
$ simply atlassian jira board list --project PROJ --type scrum
$ simply atlassian jira board list --limit 10 --json
FLAG DESCRIPTIONS
-e, --env-file=<value> Path to a .env file holding connection settings.
Loaded before anything else. Variables already present in the environment win, so the file never overrides an
explicit export, and only Atlassian connection variables are read from it. A path that cannot be read is an error.See code: lib/commands/atlassian/jira/board/list.js
simply atlassian jira fields
List Jira fields, including custom field ids.
USAGE
$ simply atlassian jira fields [--json] [-e <value>] [--jira-url <value>] [--jira-username <value>] [--jira-api-token
<value>] [--jira-personal-token <value>] [--custom] [--search <value>] [--limit <value>]
FLAGS
--custom Only custom fields.
--limit=<value> [default: 50] Maximum number of fields to show.
--search=<value> Match against the field name or id, case-insensitively.
CONNECTION FLAGS
-e, --env-file=<value> Path to a .env file holding connection settings.
--jira-api-token=<value> [env: JIRA_API_TOKEN] API token for Jira Cloud basic auth.
--jira-personal-token=<value> [env: JIRA_PERSONAL_TOKEN] Personal access token for Jira Server/Data Center.
--jira-url=<value> [env: JIRA_URL] Base URL of the Jira instance.
--jira-username=<value> [env: JIRA_USERNAME] Account email for Jira Cloud basic auth.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
List Jira fields, including custom field ids.
This is what makes --body usable on issue create and update. A custom field is addressed by an id like
customfield_10016, which differs between instances and cannot be guessed — so without this command the escape hatch
for untyped fields is unusable by anyone who has not read it off an admin screen. --search matches the name or the id,
so it answers both "what is Story Points called" and "what is customfield_10016".
EXAMPLES
$ simply atlassian jira fields --custom
$ simply atlassian jira fields --search "story points"
$ simply atlassian jira fields --search customfield_10016 --json
FLAG DESCRIPTIONS
-e, --env-file=<value> Path to a .env file holding connection settings.
Loaded before anything else. Variables already present in the environment win, so the file never overrides an
explicit export, and only Atlassian connection variables are read from it. A path that cannot be read is an error.See code: lib/commands/atlassian/jira/fields.js
simply atlassian jira issue comment add ISSUE
Add a comment to a Jira issue.
USAGE
$ simply atlassian jira issue comment add ISSUE [--json] [-e <value>] [--jira-url <value>] [--jira-username <value>]
[--jira-api-token <value>] [--jira-personal-token <value>] [--dry-run] [--text <value>] [--mention <value>...]
[--body <value> | --body-file <value>]
ARGUMENTS
ISSUE Issue key, for example PROJ-123.
FLAGS
--body=<value> Raw JSON request body.
--body-file=<value> Path to a file holding the raw JSON request body.
--dry-run Print the request that would be sent and exit without sending it.
--mention=<value>... Account id, or a name or email to resolve. Repeatable.
--text=<value> Comment text.
CONNECTION FLAGS
-e, --env-file=<value> Path to a .env file holding connection settings.
--jira-api-token=<value> [env: JIRA_API_TOKEN] API token for Jira Cloud basic auth.
--jira-personal-token=<value> [env: JIRA_PERSONAL_TOKEN] Personal access token for Jira Server/Data Center.
--jira-url=<value> [env: JIRA_URL] Base URL of the Jira instance.
--jira-username=<value> [env: JIRA_USERNAME] Account email for Jira Cloud basic auth.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Add a comment to a Jira issue.
The comment text is passed as plain text and converted to the shape the deployment expects — Atlassian Document Format
on Cloud, a string on Server/DC. Use --body or --body-file for anything the text alone cannot express, such as
restricting visibility to a role or group. Use --dry-run to see what would be sent without sending it.
EXAMPLES
$ simply atlassian jira issue comment add PROJ-123 --text "Deployed to staging"
$ simply atlassian jira issue comment add PROJ-123 --text "See the runbook" --dry-run
$ simply atlassian jira issue comment add PROJ-123 --body-file ./comment.json
FLAG DESCRIPTIONS
-e, --env-file=<value> Path to a .env file holding connection settings.
Loaded before anything else. Variables already present in the environment win, so the file never overrides an
explicit export, and only Atlassian connection variables are read from it. A path that cannot be read is an error.
--mention=<value>... Account id, or a name or email to resolve. Repeatable.
An email address is the term most likely to be unique. A term matching more than one user is an error listing the
candidates, rather than a guess at who was meant.See code: lib/commands/atlassian/jira/issue/comment/add.js
simply atlassian jira issue comment delete ISSUE COMMENT
Delete a comment.
USAGE
$ simply atlassian jira issue comment delete ISSUE COMMENT [--json] [-e <value>] [--jira-url <value>] [--jira-username <value>]
[--jira-api-token <value>] [--jira-personal-token <value>] [--dry-run] [--confirm]
ARGUMENTS
ISSUE Issue key, for example PROJ-123.
COMMENT Comment id, from "issue comment list".
FLAGS
--confirm Required to proceed with an irreversible change.
--dry-run Print the request that would be sent and exit without sending it.
CONNECTION FLAGS
-e, --env-file=<value> Path to a .env file holding connection settings.
--jira-api-token=<value> [env: JIRA_API_TOKEN] API token for Jira Cloud basic auth.
--jira-personal-token=<value> [env: JIRA_PERSONAL_TOKEN] Personal access token for Jira Server/Data Center.
--jira-url=<value> [env: JIRA_URL] Base URL of the Jira instance.
--jira-username=<value> [env: JIRA_USERNAME] Account email for Jira Cloud basic auth.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Delete a comment.
A deleted comment cannot be recovered through the API, so --confirm is required — the same rule "issue delete"
follows. Comment ids come from "issue comment list".
EXAMPLES
$ simply atlassian jira issue comment delete PROJ-123 10001 --confirm
$ simply atlassian jira issue comment delete PROJ-123 10001 --dry-run
FLAG DESCRIPTIONS
-e, --env-file=<value> Path to a .env file holding connection settings.
Loaded before anything else. Variables already present in the environment win, so the file never overrides an
explicit export, and only Atlassian connection variables are read from it. A path that cannot be read is an error.
--confirm Required to proceed with an irreversible change.
There is deliberately no short form: a single letter is too easy to add by habit. It also takes no value — pass it
bare, never --confirm=true or --confirm=false.See code: lib/commands/atlassian/jira/issue/comment/delete.js
simply atlassian jira issue comment edit ISSUE COMMENT
Change an existing comment.
USAGE
$ simply atlassian jira issue comment edit ISSUE COMMENT [--json] [-e <value>] [--jira-url <value>] [--jira-username <value>]
[--jira-api-token <value>] [--jira-personal-token <value>] [--dry-run] [--text <value>] [--mention <value>...]
[--body <value> | --body-file <value>]
ARGUMENTS
ISSUE Issue key, for example PROJ-123.
COMMENT Comment id, from "issue comment list".
FLAGS
--body=<value> Raw JSON request body.
--body-file=<value> Path to a file holding the raw JSON request body.
--dry-run Print the request that would be sent and exit without sending it.
--mention=<value>... Account id, or a name or email to resolve. Repeatable.
--text=<value> Replacement comment text.
CONNECTION FLAGS
-e, --env-file=<value> Path to a .env file holding connection settings.
--jira-api-token=<value> [env: JIRA_API_TOKEN] API token for Jira Cloud basic auth.
--jira-personal-token=<value> [env: JIRA_PERSONAL_TOKEN] Personal access token for Jira Server/Data Center.
--jira-url=<value> [env: JIRA_URL] Base URL of the Jira instance.
--jira-username=<value> [env: JIRA_USERNAME] Account email for Jira Cloud basic auth.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Change an existing comment.
Replaces the comment body — it does not append to it, since an edit that silently added text would be a surprising way
to lose a comment's meaning. Comment ids come from "issue comment list"; they are not visible in the Jira UI.
EXAMPLES
$ simply atlassian jira issue comment edit PROJ-123 10001 --text "Corrected: staging, not production"
$ simply atlassian jira issue comment edit PROJ-123 10001 --text "please review" --mention [email protected]
$ simply atlassian jira issue comment edit PROJ-123 10001 --text "x" --dry-run
FLAG DESCRIPTIONS
-e, --env-file=<value> Path to a .env file holding connection settings.
Loaded before anything else. Variables already present in the environment win, so the file never overrides an
explicit export, and only Atlassian connection variables are read from it. A path that cannot be read is an error.
--mention=<value>... Account id, or a name or email to resolve. Repeatable.
A term matching more than one user is an error listing the candidates, rather than a guess.See code: lib/commands/atlassian/jira/issue/comment/edit.js
simply atlassian jira issue comment list ISSUE
List an issue's comments.
USAGE
$ simply atlassian jira issue comment list ISSUE [--json] [-e <value>] [--jira-url <value>] [--jira-username <value>]
[--jira-api-token <value>] [--jira-personal-token <value>] [--limit <value>]
ARGUMENTS
ISSUE Issue key, for example PROJ-123.
FLAGS
--limit=<value> [default: 25] Maximum number of comments to return.
CONNECTION FLAGS
-e, --env-file=<value> Path to a .env file holding connection settings.
--jira-api-token=<value> [env: JIRA_API_TOKEN] API token for Jira Cloud basic auth.
--jira-personal-token=<value> [env: JIRA_PERSONAL_TOKEN] Personal access token for Jira Server/Data Center.
--jira-url=<value> [env: JIRA_URL] Base URL of the Jira instance.
--jira-username=<value> [env: JIRA_USERNAME] Account email for Jira Cloud basic auth.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
List an issue's comments.
Shows one line per comment. Bodies are Atlassian Document Format on Cloud, so the preview column is flattened text;
use --json for the unmodified payload.
EXAMPLES
$ simply atlassian jira issue comment list PROJ-123
$ simply atlassian jira issue comment list PROJ-123 --limit 5 --json
FLAG DESCRIPTIONS
-e, --env-file=<value> Path to a .env file holding connection settings.
Loaded before anything else. Variables already present in the environment win, so the file never overrides an
explicit export, and only Atlassian connection variables are read from it. A path that cannot be read is an error.See code: lib/commands/atlassian/jira/issue/comment/list.js
simply atlassian jira issue create
Create a Jira issue.
USAGE
$ simply atlassian jira issue create [--json] [-e <value>] [--jira-url <value>] [--jira-username <value>] [--jira-api-token
<value>] [--jira-personal-token <value>] [--dry-run] [--project <value>] [--type <value>] [--parent <value>]
[--summary <value>] [--description <value>] [--assignee <value>] [--priority <value>] [--label <value>...] [--body
<value> | --body-file <value>]
FLAGS
--assignee=<value> Assignee: account id on Cloud, username on Server/DC.
--body=<value> Raw JSON request body.
--body-file=<value> Path to a file holding the raw JSON request body.
--description=<value> Issue description as plain text.
--dry-run Print the request that would be sent and exit without sending it.
--label=<value>... Label to apply. Repeatable.
--parent=<value> Parent issue key, making this a subtask of it.
--priority=<value> Priority name.
--project=<value> Project key the issue belongs to.
--summary=<value> Issue summary.
--type=<value> Issue type name, for example Task or Bug.
CONNECTION FLAGS
-e, --env-file=<value> Path to a .env file holding connection settings.
--jira-api-token=<value> [env: JIRA_API_TOKEN] API token for Jira Cloud basic auth.
--jira-personal-token=<value> [env: JIRA_PERSONAL_TOKEN] Personal access token for Jira Server/Data Center.
--jira-url=<value> [env: JIRA_URL] Base URL of the Jira instance.
--jira-username=<value> [env: JIRA_USERNAME] Account email for Jira Cloud basic auth.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Create a Jira issue.
Common fields have flags; --body or --body-file supplies raw fields JSON for anything else, including custom fields.
Typed flags are merged over the body, so a template file can provide the shape and a flag can override one value. Use
--dry-run to see exactly what would be sent without sending it.
EXAMPLES
$ simply atlassian jira issue create --project PROJ --type Task --summary "Fix the thing"
$ simply atlassian jira issue create --project PROJ --type Bug --summary "Crash" --label urgent --label triage
$ simply atlassian jira issue create --project PROJ --type Subtask --parent PROJ-1 --summary "Write the tests"
$ simply atlassian jira issue create --body-file ./issue.json --dry-run
FLAG DESCRIPTIONS
-e, --env-file=<value> Path to a .env file holding connection settings.
Loaded before anything else. Variables already present in the environment win, so the file never overrides an
explicit export, and only Atlassian connection variables are read from it. A path that cannot be read is an error.
--parent=<value> Parent issue key, making this a subtask of it.
Pair with --type Subtask for a subtask. On team-managed projects this is also how an issue is placed under an epic,
so it is not validated against the issue type — Jira rejects the combinations that are genuinely wrong, and its
error is more current than any rule encoded here.See code: lib/commands/atlassian/jira/issue/create.js
simply atlassian jira issue delete ISSUE
Delete a Jira issue.
USAGE
$ simply atlassian jira issue delete ISSUE [--json] [-e <value>] [--jira-url <value>] [--jira-username <value>]
[--jira-api-token <value>] [--jira-personal-token <value>] [--dry-run] [--confirm] [--delete-subtasks]
ARGUMENTS
ISSUE Issue key, for example PROJ-123.
FLAGS
--confirm Required to proceed with an irreversible change.
--delete-subtasks Also delete the issue's subtasks.
--dry-run Print the request that would be sent and exit without sending it.
CONNECTION FLAGS
-e, --env-file=<value> Path to a .env file holding connection settings.
--jira-api-token=<value> [env: JIRA_API_TOKEN] API token for Jira Cloud basic auth.
--jira-personal-token=<value> [env: JIRA_PERSONAL_TOKEN] Personal access token for Jira Server/Data Center.
--jira-url=<value> [env: JIRA_URL] Base URL of the Jira instance.
--jira-username=<value> [env: JIRA_USERNAME] Account email for Jira Cloud basic auth.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Delete a Jira issue.
Irreversible, so --confirm is required. There is no short form for it on purpose. Use --dry-run to see what would be
deleted without deleting it.
EXAMPLES
$ simply atlassian jira issue delete PROJ-123 --confirm
$ simply atlassian jira issue delete PROJ-123 --confirm --delete-subtasks
$ simply atlassian jira issue delete PROJ-123 --dry-run
FLAG DESCRIPTIONS
-e, --env-file=<value> Path to a .env file holding connection settings.
Loaded before anything else. Variables already present in the environment win, so the file never overrides an
explicit export, and only Atlassian connection variables are read from it. A path that cannot be read is an error.
--confirm Required to proceed with an irreversible change.
There is deliberately no short form: a single letter is too easy to add by habit. It also takes no value — pass it
bare, never --confirm=true or --confirm=false.
--delete-subtasks Also delete the issue's subtasks.
Without this, Jira refuses to delete an issue that has subtasks.See code: lib/commands/atlassian/jira/issue/delete.js
simply atlassian jira issue history ISSUE
Show an issue field-change history.
USAGE
$ simply atlassian jira issue history ISSUE [--json] [-e <value>] [--jira-url <value>] [--jira-username <value>]
[--jira-api-token <value>] [--jira-personal-token <value>] [--limit <value>] [--field <value>]
ARGUMENTS
ISSUE Issue key, for example PROJ-123.
FLAGS
--field=<value> Only show entries that changed this field, case-insensitively.
--limit=<value> [default: 50] Maximum number of history entries to fetch.
CONNECTION FLAGS
-e, --env-file=<value> Path to a .env file holding connection settings.
--jira-api-token=<value> [env: JIRA_API_TOKEN] API token for Jira Cloud basic auth.
--jira-personal-token=<value> [env: JIRA_PERSONAL_TOKEN] Personal access token for Jira Server/Data Center.
--jira-url=<value> [env: JIRA_URL] Base URL of the Jira instance.
--jira-username=<value> [env: JIRA_USERNAME] Account email for Jira Cloud basic auth.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Show an issue field-change history.
Lists who changed which fields, when, and the previous and new values. History is grouped by changelog entry and
rendered oldest first. Use --json for raw changelog entries and completeness metadata.
EXAMPLES
$ simply atlassian jira issue history PROJ-123
$ simply atlassian jira issue history PROJ-123 --field status
$ simply atlassian jira issue history PROJ-123 --limit 10 --json
FLAG DESCRIPTIONS
-e, --env-file=<value> Path to a .env file holding connection settings.
Loaded before anything else. Variables already present in the environment win, so the file never overrides an
explicit export, and only Atlassian connection variables are read from it. A path that cannot be read is an error.See code: lib/commands/atlassian/jira/issue/history.js
simply atlassian jira issue link create FROM TYPE TO
Link two Jira issues.
USAGE
$ simply atlassian jira issue link create FROM TYPE TO [--json] [-e <value>] [--jira-url <value>] [--jira-username <value>]
[--jira-api-token <value>] [--jira-personal-token <value>] [--dry-run] [--comment <value>]
ARGUMENTS
FROM Issue the relationship is stated from, for example PROJ-1.
TYPE Relationship phrase or type name, for example "blocks".
TO Issue the relationship points at, for example PROJ-2.
FLAGS
--comment=<value> Comment to add to the link.
--dry-run Print the request that would be sent and exit without sending it.
CONNECTION FLAGS
-e, --env-file=<value> Path to a .env file holding connection settings.
--jira-api-token=<value> [env: JIRA_API_TOKEN] API token for Jira Cloud basic auth.
--jira-personal-token=<value> [env: JIRA_PERSONAL_TOKEN] Personal access token for Jira Server/Data Center.
--jira-url=<value> [env: JIRA_URL] Base URL of the Jira instance.
--jira-username=<value> [env: JIRA_USERNAME] Account email for Jira Cloud basic auth.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Link two Jira issues.
The relationship is given the way it would be said out loud: "A blocks B". Either direction of a type works — "A
blocks B" and "B is blocked by A" state the same fact and produce the same link — so the phrasing can follow whatever
the source text used. The type may also be given by name, which is read as its outward phrase. An unmatched type lists
what the instance offers. Use "issue link types" to see them, or --dry-run to check without sending.
EXAMPLES
$ simply atlassian jira issue link create PROJ-1 blocks PROJ-2
$ simply atlassian jira issue link create PROJ-2 "is blocked by" PROJ-1
$ simply atlassian jira issue link create PROJ-1 relates PROJ-3 --comment "same root cause"
FLAG DESCRIPTIONS
-e, --env-file=<value> Path to a .env file holding connection settings.
Loaded before anything else. Variables already present in the environment win, so the file never overrides an
explicit export, and only Atlassian connection variables are read from it. A path that cannot be read is an error.See code: lib/commands/atlassian/jira/issue/link/create.js
simply atlassian jira issue link delete LINK-ID
Delete an issue link.
USAGE
$ simply atlassian jira issue link delete LINK-ID [--json] [-e <value>] [--jira-url <value>] [--jira-username <value>]
[--jira-api-token <value>] [--jira-personal-token <value>] [--dry-run]
ARGUMENTS
LINK-ID Link id, as shown by "issue link list".
FLAGS
--dry-run Print the request that would be sent and exit without sending it.
CONNECTION FLAGS
-e, --env-file=<value> Path to a .env file holding connection settings.
--jira-api-token=<value> [env: JIRA_API_TOKEN] API token for Jira Cloud basic auth.
--jira-personal-token=<value> [env: JIRA_PERSONAL_TOKEN] Personal access token for Jira Server/Data Center.
--jira-url=<value> [env: JIRA_URL] Base URL of the Jira instance.
--jira-username=<value> [env: JIRA_USERNAME] Account email for Jira Cloud basic auth.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Delete an issue link.
Takes the link id, which "issue link list" prints. The link is resolved first, so both the dry run and the result name
the relationship being removed rather than only its id — a link id is instance-global and identifies nothing on its
own. Unlike issue and comment deletion this does not require --confirm: what it prints is enough to re-create the link
in one command, so it is not the irreversible loss of data that --confirm exists to guard.
EXAMPLES
$ simply atlassian jira issue link delete 10201
$ simply atlassian jira issue link delete 10201 --dry-run
FLAG DESCRIPTIONS
-e, --env-file=<value> Path to a .env file holding connection settings.
Loaded before anything else. Variables already present in the environment win, so the file never overrides an
explicit export, and only Atlassian connection variables are read from it. A path that cannot be read is an error.See code: lib/commands/atlassian/jira/issue/link/delete.js
simply atlassian jira issue link list ISSUE
List an issue's links.
USAGE
$ simply atlassian jira issue link list ISSUE [--json] [-e <value>] [--jira-url <value>] [--jira-username <value>]
[--jira-api-token <value>] [--jira-personal-token <value>] [--limit <value>]
ARGUMENTS
ISSUE Issue key, for example PROJ-123.
FLAGS
--limit=<value> [default: 25] Maximum number of links to show.
CONNECTION FLAGS
-e, --env-file=<value> Path to a .env file holding connection settings.
--jira-api-token=<value> [env: JIRA_API_TOKEN] API token for Jira Cloud basic auth.
--jira-personal-token=<value> [env: JIRA_PERSONAL_TOKEN] Personal access token for Jira Server/Data Center.
--jira-url=<value> [env: JIRA_URL] Base URL of the Jira instance.
--jira-username=<value> [env: JIRA_USERNAME] Account email for Jira Cloud basic auth.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
List an issue's links.
Each relationship is phrased from the perspective of the issue asked about, so "blocks" means this issue blocks the
one named. The ID column is what "issue link delete" needs and is not otherwise discoverable.
EXAMPLES
$ simply atlassian jira issue link list PROJ-123
$ simply atlassian jira issue link list PROJ-123 --json
FLAG DESCRIPTIONS
-e, --env-file=<value> Path to a .env file holding connection settings.
Loaded before anything else. Variables already present in the environment win, so the file never overrides