npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@simplysf/simply-atlassian

v0.13.0

Published

Command-line interface for working with Atlassian products

Downloads

706

Readme

@simplysf/simply-atlassian

NPM License: Apache-2.0

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 --help

To install it ahead of time — in CI, a container image, or offline:

simply plugins install @simplysf/simply-atlassian

Upgrading from a standalone install? This package used to own the simply command itself, which meant it could not be installed alongside SimplySF's other CLIs. It is now a plugin. Run npm uninstall -g @simplysf/simply-atlassian and install @simplysf/simply-cli instead. 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 person
simply atlassian jira issue search -e ~/atlassian.env --jql "project = PROJ"
simply atlassian jira issue delete PROJ-1 -e ~/atlassian-write.env --confirm

The 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 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