Skip to content

Pages

Create, read, update, delete, move, copy, and organize Confluence pages.

  • Authenticated profile with Confluence access (atlcli auth login)
  • Space permission: View for read operations, Edit for create/update/delete

List pages in a space:

Terminal window
atlcli wiki page list --space TEAM

Output:

ID TITLE MODIFIED AUTHOR
12345 Getting Started 2025-01-14 10:30 alice@company
12346 API Reference 2025-01-13 15:45 bob@company
12347 Configuration Guide 2025-01-12 09:00 alice@company

Options:

FlagDescription
--spaceSpace key
--cqlCQL query to filter pages
--labelFilter by label
--limitMaximum results

View a specific page:

Terminal window
atlcli wiki page get --id 12345

Options:

FlagDescription
--idPage ID (required)
--versionGet specific version
--expandInclude: body, version, ancestors
--jsonJSON output

Create a new page from a markdown file:

Terminal window
atlcli wiki page create --space TEAM --title "New Page" --body ./content.md

Options:

FlagDescription
--spaceSpace key (required)
--titlePage title (required)
--bodyMarkdown file with page content (required)
Terminal window
# Create page from file
atlcli wiki page create --space TEAM --title "API Guide" --body ./api-guide.md
# Create under parent
atlcli wiki page create --space TEAM --title "Child Page" --body ./child.md --parent 12345

Update an existing page from a markdown file:

Terminal window
atlcli wiki page update --id 12345 --body ./updated-content.md

Options:

FlagDescription
--idPage ID (required)
--bodyMarkdown file with new content (required)
--titleChange title
Terminal window
# Update content from file
atlcli wiki page update --id 12345 --body ./updated-guide.md
# Change title too
atlcli wiki page update --id 12345 --body ./guide.md --title "New Title"

Delete a single page:

Terminal window
atlcli wiki page delete --id 12345 --confirm

Options:

FlagDescription
--idPage ID
--confirmSkip confirmation prompt

Delete multiple pages matching a CQL query:

Terminal window
atlcli wiki page delete --cql "space = TEAM AND label = deprecated" --confirm

Options:

FlagDescription
--cqlCQL query to match pages
--dry-runPreview without deleting
--confirmSkip confirmation
Terminal window
# Preview what would be deleted
atlcli wiki page delete --cql "space = ARCHIVE AND lastModified < now('-365d')" --dry-run
# Delete old archived pages
atlcli wiki page delete --cql "space = ARCHIVE AND lastModified < now('-365d')" --confirm

Move pages to archive instead of deleting:

Terminal window
# Archive single page
atlcli wiki page archive --id 12345 --confirm
# Bulk archive via CQL
atlcli wiki page archive --cql "space = TEAM AND label = deprecated" --confirm

Options:

FlagDescription
--idPage ID
--cqlCQL query for bulk archive
--dry-runPreview without archiving
--confirmSkip confirmation

Duplicate a page:

Terminal window
atlcli wiki page copy --id 12345 --title "Copy of Page"

Options:

FlagDescription
--idSource page ID (required)
--titleTitle for the copy
--spaceTarget space (default: same space)
--parentParent page for the copy
Terminal window
# Copy to same space
atlcli wiki page copy --id 12345 --title "Page Copy"
# Copy to different space
atlcli wiki page copy --id 12345 --title "Page Copy" --space DOCS

Get child pages of a parent:

Terminal window
atlcli wiki page children --id 12345

Options:

FlagDescription
--idParent page ID (required)
--limitMaximum results
--jsonJSON output

Output:

Child pages (3):
12346 Getting Started
12347 API Reference
12348 Troubleshooting
└── Troubleshooting (12348)

Move a page to a new location:

Terminal window
# Move under different parent
atlcli wiki page move --id 12345 --parent 67890

Control exact position among siblings using file paths or page IDs:

Terminal window
# Move before specific sibling
atlcli wiki page move ./docs/page.md --before ./docs/intro.md
# Move after specific sibling
atlcli wiki page move ./docs/page.md --after ./docs/setup.md
# Move to first position
atlcli wiki page move ./docs/appendix.md --first
# Move to last position
atlcli wiki page move ./docs/appendix.md --last
# Move to specific position (1-indexed)
atlcli wiki page move --id 12345 --position 3

Options:

FlagDescription
--idPage ID to move
--parentNew parent page ID
--beforePosition before this page
--afterPosition after this page
--firstMove to first child position
--lastMove to last child position
--positionSpecific position index (1-based)

Reorder child pages:

Terminal window
# Alphabetical sort (using file path)
atlcli wiki page sort ./docs/api.md --alphabetical
# Natural sort (handles numbers correctly)
atlcli wiki page sort ./docs/chapters.md --natural
# Sort by creation date
atlcli wiki page sort ./docs/changelog.md --by created
# Sort by last modified, reversed
atlcli wiki page sort ./docs/changelog.md --by modified --reverse
# Sort using page ID
atlcli wiki page sort --id 12345 --alphabetical --dry-run

Options:

FlagDescription
--alphabeticalSort A-Z by title
--naturalNatural sort (“Chapter 2” before “Chapter 10”)
--bySort by: created, modified
--reverseReverse sort order
--dry-runPreview without applying
Before (alphabetical): After (natural):
Chapter 1 Chapter 1
Chapter 10 Chapter 2
Chapter 2 Chapter 10
Chapter 3 Chapter 3

Link Confluence pages to Jira issues for bidirectional traceability.

Terminal window
atlcli wiki page link-issue --id 12345 --issue PROJ-123

Options:

FlagDescription
--idPage ID (required)
--issueJira issue key (required)
--commentAdd comment to the linked issue
Terminal window
atlcli wiki page issues --id 12345

Options:

FlagDescription
--idPage ID (required)
--projectFilter by Jira project
Terminal window
atlcli wiki page unlink-issue --id 12345 --issue PROJ-123
Terminal window
# Link a Jira issue to a page
atlcli wiki page link-issue --id 12345 --issue PROJ-123
# Link with comment on the issue
atlcli wiki page link-issue --id 12345 --issue PROJ-456 --comment
# List all Jira issues linked to a page
atlcli wiki page issues --id 12345
# Filter by project
atlcli wiki page issues --id 12345 --project PROJ
# Remove link
atlcli wiki page unlink-issue --id 12345 --issue PROJ-123

All commands support --json:

Terminal window
atlcli wiki page list --space TEAM --json
{
"schemaVersion": "1",
"pages": [
{
"id": "12345",
"title": "Getting Started",
"space": {"key": "TEAM", "name": "Team Docs"},
"url": "https://company.atlassian.net/wiki/spaces/TEAM/pages/12345",
"version": 5,
"lastModified": "2025-01-14T10:30:00Z",
"author": {
"displayName": "Alice",
"email": "alice@company.com"
}
}
],
"total": 24
}
Terminal window
# Move all API docs under new parent
for id in $(atlcli wiki page list --space TEAM --json | jq -r '.pages[] | select(.title | startswith("API")) | .id'); do
atlcli wiki page move --id $id --parent 99999
done
Terminal window
# Archive pages not modified in 6 months
atlcli wiki page archive --cql "space = TEAM AND lastModified < now('-180d')" --dry-run
# If looks good, execute
atlcli wiki page archive --cql "space = TEAM AND lastModified < now('-180d')" --confirm
Terminal window
# Copy page to new space
atlcli wiki page copy --id 12345 --title "API Docs" --space NEW_SPACE
Terminal window
# Sort all sections alphabetically
for parent in 12345 12346 12347; do
atlcli wiki page sort --id $parent --natural --dry-run
done

Symptom: Error: Page 12345 not found

Causes:

  • Page was deleted or moved to trash
  • Page ID is incorrect
  • You don’t have View permission for the page

Fix: Verify the page exists in Confluence and you have access.

Symptom: Error: Cannot delete page with children

Cause: The page has child pages that must be deleted first.

Fix: Delete child pages first, then delete the parent:

Terminal window
# List children
atlcli wiki page children --id 12345
# Delete children first, then parent
atlcli wiki page delete --id <child-id> --confirm
atlcli wiki page delete --id 12345 --confirm
  • Sync - Bidirectional sync between local files and Confluence
  • Folders - Organize pages with folders (Cloud only)
  • Labels - Tag and filter pages with labels
  • History - View and restore page versions
  • Attachments - Manage page attachments
Jira and Confluence are trademarks of Atlassian Corporation Plc. atlcli is not affiliated with, endorsed by, or sponsored by Atlassian.