Skip to main content

PresentationsAI CLI

Create, inspect, and download PresentationsAI decks from a terminal or Python. The package includes a typed Python client for the external Deck API and a retry-safe CLI for production workflows.

Install

Install the command in an isolated environment with uv (recommended) or pipx:

uv tool install deckmaker
# or: pipx install deckmaker

deckmaker --version

Upgrade later with deckmaker update or uv tool upgrade deckmaker.

Authenticate

Create an API key in workspace API-key settings, then validate and save it in your operating system credential store:

deckmaker auth login
deckmaker auth status

The prompt hides the key. The profile file contains only the API URL and environment-variable name; the key itself is stored by macOS Keychain, Windows Credential Locker, or the configured Linux keyring. To use a non-production API environment:

deckmaker auth login development \
  --base-url https://your-api-origin.example/api/v1 \
  --api-key-env PRES_API_KEY

Credential precedence is --api-key, the profile's environment variable, then the OS credential store. In CI, use a masked secret rather than an interactive login:

export PRESENTATIONSAI_API_KEY="..."
export PRESENTATIONSAI_BASE_URL="https://api.presentations.ai/api/v1"
deckmaker auth status

Remove the locally stored key with deckmaker auth logout. Add --revoke to permanently revoke the key on the server before removing it. API keys can also be created and rotated from the URL printed by deckmaker auth keys.

Create and download a deck

Generate an outline, review its plain JSON, and create a deck from the approved structure:

deckmaker create outline \
  "Create a six-slide board update grounded in the source" \
  --file ./quarterly-review.pdf \
  --slides 6 \
  --output ./reviewed-outline.json

${EDITOR:-vi} ./reviewed-outline.json

deckmaker create deck \
  --deck-title "Quarterly customer review" \
  --outline ./reviewed-outline.json \
  --request-id quarterly-review-v1 \
  --format pptx \
  --output ./quarterly-review.pptx

Deck generation waits for completion by default. --no-wait returns after acceptance; resume with deckmaker get status REQUEST_ID. Prompt and source workflows target 10 slides by default. Use --slides 6, --slides 8-12, or --slides auto to change that. An authored --outline retains its exact slide list and cannot be combined with --slides.

Inspect and manage existing decks:

deckmaker list decks
deckmaker get deck DECK_ID
deckmaker get deck DECK_ID status
deckmaker get deck DECK_ID outline
deckmaker get deck DECK_ID pptx --output ./deck.pptx
deckmaker delete deck DECK_ID --yes

The default get deck output is the viewer link. pptx, pdf, and image download the newest existing artifact; reads never queue a new export.

Typed Python client

The distribution includes a py.typed marker, so type checkers understand the public models:

import os

from deckmaker.client import PresentationsAIClient
from deckmaker.models import CreateDeckRequest

with PresentationsAIClient(
    api_key=os.environ["PRESENTATIONSAI_API_KEY"],
    base_url="https://api.presentations.ai/api/v1",
) as client:
    identity = client.get_current_principal()
    created = client.create_deck(
        CreateDeckRequest(deck_title="Board update", prompt="Summarize the quarter"),
        request_id="board-update-2026-q3-v1",
    )
    finished = client.wait_for_request(created.request_id, timeout=600)
    print(identity.email, finished.deck_id)

Safe retries and output

When --request-id is omitted, the CLI derives a stable ID from the logical request. Uploaded file IDs are cached by content digest, so retrying does not silently change the server fingerprint. Pass --new only when you intentionally want another deck from the same input.

Retry-state files contain identifiers and SHA-256 digests only, use owner-only permissions, and are isolated by API environment and credential. API keys and source contents are never stored there. Use --json for structured output, --quiet to suppress progress, and PRESENTATIONSAI_STATE_DIR to relocate retry state in CI.

Help and issue reports

Run deckmaker report-issue for the official support route and a safe diagnostic summary. Send problems to support@presentations.ai. Include the CLI version, Python version, command shape, error code, and trace ID when available. Never include API keys or confidential source files.

API overview: presentations.ai/solutions/api

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

deckmaker-0.1.1.tar.gz (87.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

deckmaker-0.1.1-py3-none-any.whl (29.6 kB view details)

Uploaded Python 3

File details

Details for the file deckmaker-0.1.1.tar.gz.

File metadata

  • Download URL: deckmaker-0.1.1.tar.gz
  • Upload date:
  • Size: 87.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for deckmaker-0.1.1.tar.gz
Algorithm Hash digest
SHA256 12eb41af4c45dca6d0a9731ced6d2af86900f201e89cbc4cc897c764494603e9
MD5 a85850d6be974b67147ed7b2a8ccc3c1
BLAKE2b-256 03a1c5b3baa8e7d62639dd37271c47da0f19d5ff59ca138a7a8b5ed5c019d520

See more details on using hashes here.

File details

Details for the file deckmaker-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: deckmaker-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 29.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for deckmaker-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c70084b2882477df72d86b7677cf46b2a0161d8193cb20d42fe89925f9cdd9a3
MD5 ea173fda73ad3834809ee49a7918afdd
BLAKE2b-256 be6d5886648df9f54fb1ce22ccfbd2c926e577f4a20e377c26cc88a6e8bee652

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page