Skip to main content
An article is a single page of content in your knowledge base. For fields and response details, see the API reference. Every command that takes an article ID accepts the article’s slug, its permalink identifier (a-XXXXXXXX), or its UUID. See Getting an article ID. Samples on this page show the --json envelope, which stays stable across terminals; the default pretty output picks columns to fit your terminal width. See Output formats.

List articles

This command lists articles in your workspace, including drafts. Use this when you want to review what exists, filter by category or state, or collect IDs for another command.
Sample output (--json)
--search-term matches article content and titles. --sort-by names the field to order on and --order-by takes ASC or DESC.

Search articles

This command runs a full-text search across your published articles, ranked by relevance. Use this when you know roughly what an article says but not where it lives; articles list --search-term filters the same corpus but returns the full list shape. For fields and response details, see the API reference.
Sample output (--json)

Show an article

This command shows the full record for one article, including its HTML body, author, category, and tags. Use this when you want to read or export an article after finding its ID from articles list or search.
Required arguments:
  • <id> - Article slug, permalink identifier (a-XXXXXXXX), or UUID
Sample output (--json)

Create an article

This command creates an article in a category. Use this when you want to publish content from a script or a content pipeline instead of the editor.
--category is the category path, most specific first: "Installation,Getting Started" places the article in Installation, whose parent is Getting Started. Names are matched, not IDs or slugs. Omit --state and the article is created as a draft.
Sample output (--json)
With --quiet, this prints only the new article’s ID.

Update an article

This command updates an existing article’s title, body, slug, or state. Use this to publish a draft, correct content, or rename an article’s URL.
Required arguments:
  • <id> - Article slug, permalink identifier (a-XXXXXXXX), or UUID
Only the flags you pass are changed. --slug can be modified only while the article is published.
Sample output (--json)
An unlisted link is a secret URL that lets anyone view a published article without signing in. For fields and response details, see the API reference. This command fetches an article’s unlisted link, creating a never-expiring one if the article does not have one yet. Use this when you want to share a published article outside your knowledge base.
Required arguments:
  • <article-id> - Article slug, permalink identifier (a-XXXXXXXX), or UUID
Sample output (--json)
An expired link is replaced with a fresh one automatically. The article must be published; a draft returns an error. This command issues a new unlisted link and invalidates the old URL immediately. Use this when a link has been shared too widely, or when you want the link to expire.
Required arguments:
  • <article-id> - Article slug, permalink identifier (a-XXXXXXXX), or UUID
The presets one_day, seven_days, and thirty_days compute the expiry on the server and reject --expiration-date. Use custom together with --expiration-date for an exact time; passing --expiration-date alone is treated as custom.
Sample output (--json)