slides
orc slides selects a slides backend with --target CONNECTION_ID. Google Workspace is the currently supported backend. The connection ID is a flag.
get returns the presentations.get response; create accepts --title. api get and api update call read and write methods from the pinned Discovery document. batch-requests create validates exactly one Request key per object. schemas list/get inspect methods, Request types, and schemas without a connection.
Reconnect existing Workspace connections to grant Slides scopes. Writes require manage access. --readonly blocks writes; --wrap-untrusted wraps external text. After a timeout, read the presentation before retrying a write.
exports get PRESENTATION_ID --format pdf|pptx --output FILE saves PDF or PowerPoint (Drive export, maximum 10 MB). The drive.file grant covers files created by the app or explicitly opened with it through Picker or a similar app file picker. User ownership alone is insufficient; sharing with the account or reconnecting does not itself grant app access to every existing file. Inaccessible files return CONFLICT with share/reconnect guidance. Orchestor does not request the restricted drive or drive.readonly scopes.
thumbnails get PRESENTATION_ID PAGE_ID [--size SMALL|MEDIUM|LARGE] returns content_url, width, and height. With --output FILE, the CLI downloads the PNG. The URL normally lasts 30 minutes; anyone with it can access the image. Both commands work with --readonly.
create --markdown FILE creates a deck from Slidev Markdown; update PRESENTATION_ID --markdown FILE replaces every slide. FILE is a UTF-8 file path, or - for raw stdin. API clients send the content in markdown. Headmatter title names the presentation. Creating with only --title remains supported. Titles, body text, notes, and hide are converted. Unsupported features use safe plain text fallbacks and appear in report with a zero-based slide_index.
get PRESENTATION_ID --format markdown [--output deck.md] converts an existing presentation to Slidev Markdown. It retains titles, body text, lists, tables, image URLs, speaker notes and skipped slides, and reads hand-added text in position order. The API returns { markdown, report }. Layout aliases normalize to cover or center where Google cannot distinguish them. Unsupported shapes, videos, charts and other elements appear in report, as do expiring contentUrl references. Images prefer sourceUrl.
Usage
orc slides get PRESENTATION_ID --target CONNECTION_ID --workspace WORKSPACE_ID --wrap-untrusted --jsonGet a presentation
orc slides create --target CONNECTION_ID --title "Weekly review" --workspace WORKSPACE_ID --jsonCreate a presentation
Subcommands
get
Get a presentation
orc slides get <presentation-id> [options]Unique options
--target
Connection ID of the slides backend (currently a google-workspace connection); max 200 chars
Type: string. Required.
orc slides get <presentation-id> --target <value>create
Create a presentation
orc slides create [options]Unique options
--markdown
Path to a UTF-8 file, or - for stdin. Slidev Markdown content. CLI: path to a UTF-8 file, or - for stdin.; max 1000000 chars
Type: string. Optional.
orc slides create --markdown <value>--target
(required) Connection ID of the slides backend (currently a google-workspace connection); max 200 chars
Type: string. Optional.
orc slides create --target <value>--title
Body field: title; max 500 chars
Type: string. Optional.
orc slides create --title <value>api get
Call a read-only Slides API method
orc slides api get [options]Unique options
--method
(required) Read-only Discovery method ID, for example presentations.pages.get.; enum: presentations.get|presentations.pages.get|presentations.pages.getThumbnail
Type: string. Optional.
orc slides api get --method <value>--params
Path and query parameters by Discovery name, for example {"presentationId":"…","pageObjectId":"…"}. Run orc slides schemas get <method> for parameters.; (JSON object, e.g. '{"custom_id":"x"}')
Type: string. Optional.
orc slides api get --params <value>--target
(required) Connection ID of the slides backend (currently a google-workspace connection); max 200 chars
Type: string. Optional.
orc slides api get --target <value>api update
Call a mutating Slides API method
orc slides api update [options]Unique options
--body
Request body in the Discovery request schema.; (JSON object, e.g. '{"custom_id":"x"}')
Type: string. Optional.
orc slides api update --body <value>--method
(required) Mutating Discovery method ID, for example presentations.batchUpdate.; enum: presentations.batchUpdate|presentations.create
Type: string. Optional.
orc slides api update --method <value>--params
Path and query parameters by Discovery name, for example {"presentationId":"…","pageObjectId":"…"}. Run orc slides schemas get <method> for parameters.; (JSON object, e.g. '{"custom_id":"x"}')
Type: string. Optional.
orc slides api update --params <value>--target
(required) Connection ID of the slides backend (currently a google-workspace connection); max 200 chars
Type: string. Optional.
orc slides api update --target <value>batch-requests create
Apply Slides batchUpdate requests
orc slides batch-requests create <presentation-id> [options]Unique options
--requests
(required) batchUpdate requests, each with exactly one Request key, for example {"createSlide":{…}}. Run orc slides schemas list for types.; JSON array of objects (use --stdin for large resources)
Type: string. Optional.
orc slides batch-requests create <presentation-id> --requests <value>--target
(required) Connection ID of the slides backend (currently a google-workspace connection); max 200 chars
Type: string. Optional.
orc slides batch-requests create <presentation-id> --target <value>--write-control
Slides WriteControl, for example {"requiredRevisionId":"…"}.; (JSON object, e.g. '{"custom_id":"x"}')
Type: string. Optional.
orc slides batch-requests create <presentation-id> --write-control <value>schemas list
List Slides API methods and request types
orc slides schemas list [options]schemas get
Get a Slides API schema
orc slides schemas get <name> [options]exports get
Export a presentation
orc slides exports get <presentation-id> [options]Unique options
--target
Connection ID of the slides backend (currently a google-workspace connection); max 200 chars
Type: string. Required.
orc slides exports get <presentation-id> --target <value>thumbnails get
Get a slide thumbnail
orc slides thumbnails get <presentation-id> <page-id> [options]Unique options
--target
Connection ID of the slides backend (currently a google-workspace connection); max 200 chars
Type: string. Required.
orc slides thumbnails get <presentation-id> <page-id> --target <value>--size
Thumbnail width: SMALL 200px, MEDIUM 800px, LARGE 1600px. Google chooses the default when omitted.; enum: SMALL|MEDIUM|LARGE
Type: string. Optional.
orc slides thumbnails get <presentation-id> <page-id> --size <value>update
Replace all slides from Slidev Markdown
orc slides update <presentation-id> [options]Unique options
--markdown
(required) Path to a UTF-8 file, or - for stdin. Slidev Markdown content. CLI: path to a UTF-8 file, or - for stdin.; max 1000000 chars
Type: string. Optional.
orc slides update <presentation-id> --markdown <value>--target
(required) Connection ID of the slides backend (currently a google-workspace connection); max 200 chars
Type: string. Optional.
orc slides update <presentation-id> --target <value>Examples
Inspect a method schema
orc slides schemas get presentations.pages.get --workspace WORKSPACE_ID --jsonInspect a method schema
Read a page
orc slides api get --target CONNECTION_ID --method presentations.pages.get --params '{"presentationId":"PRESENTATION_ID","pageObjectId":"PAGE_ID"}' --workspace WORKSPACE_ID --readonly --jsonRead a page
Apply batch requests
orc slides batch-requests create PRESENTATION_ID --target CONNECTION_ID --requests '[{"createSlide":{"objectId":"slide_1"}}]' --workspace WORKSPACE_ID --dry-runApply batch requests
Export PDF
orc slides exports get PRESENTATION_ID --target CONNECTION_ID --format pdf --output deck.pdf --workspace WORKSPACE_ID --readonlyExport PDF
Export PowerPoint
orc slides exports get PRESENTATION_ID --target CONNECTION_ID --format pptx --output deck.pptx --workspace WORKSPACE_ID --readonlyExport PowerPoint
Save a slide thumbnail
orc slides thumbnails get PRESENTATION_ID PAGE_ID --target CONNECTION_ID --size LARGE --output slide.png --workspace WORKSPACE_ID --readonlySave a slide thumbnail
Create from Markdown
orc slides create --target CONNECTION_ID --markdown deck.md --workspace WORKSPACE_ID --dry-run --jsonCreate from Markdown
Replace all slides from stdin
cat deck.md | orc slides update PRESENTATION_ID --target CONNECTION_ID --markdown - --workspace WORKSPACE_ID --jsonReplace all slides from stdin
Read as Slidev Markdown
orc slides get --target CONNECTION_ID PRESENTATION_ID --format markdown --output deck.md --workspace WORKSPACE_ID --readonlyRead as Slidev Markdown
Markdown and dry run
For Markdown, --dry-run sends dry_run: true to the API and performs no Google writes. Create does not call Google; update reads the existing slide IDs and revision. The response includes presentation_id (null for create), slide_count, requests (Phase 1), notes (slide_object_id and text), and report. Update also returns write_control.requiredRevisionId. Notes are deferred text, not requests, because their object IDs exist only after slide creation. Real execution writes slides in Phase 1, then only when notes exist reads their IDs and a fresh revision and writes all notes in Phase 2. A notes failure reports that slides were already written. Re-run update to replace the slides and retry notes.
Markdown elements and layouts
Lists become native bullets or numbering, including nesting. Each top-level list uses one preset throughout; mixed nested list types use the top-level style and add a lists report entry. Tables become editable tables with a bold header row. Bold, italic, inline code (Courier New), and links become text styles, with UTF-16 ranges. Markdown images and frontmatter image: accept absolute HTTPS URLs; Google fetches them, and Orchestor never downloads or uploads them. background: sets a stretched page image. Relative, data:, and HTTP sources appear in report; other content still converts. Mermaid, KaTeX, code blocks, v-click, components, and unknown options keep report entries. Ordinary code blocks remain editable monospaced text.
| Slidev layout | Google layout | Content mapping |
|---|---|---|
| cover, intro | TITLE | Title and subtitle |
| default | TITLE_AND_BODY | Title and body |
| section | SECTION_HEADER | Title; body content uses TITLE_AND_BODY and reports the fallback |
| center, end | TITLE_ONLY | Title; body content uses TITLE_AND_BODY and reports the fallback |
| two-cols | TITLE_AND_TWO_COLUMNS | Heading as title; default slot and ::left:: in BODY index 0; ::right:: in BODY index 1 |
| two-cols-header | TITLE_AND_TWO_COLUMNS | Heading and default slot text in title; ::left:: in BODY index 0; ::right:: in BODY index 1. Default-slot tables and images go in the left column |
| image-left, image-right | TITLE_AND_BODY | Frontmatter image in the named half; body placeholder replaced with sized text boxes in the opposite half; title above |
| image | BLANK | Full-page frontmatter image; any Markdown content is overlaid |
| full | BLANK | Title and body in one full-page text box; tables and images remain separate native elements |
Image placement uses a 16:9 page (9,144,000 × 5,143,500 EMU). Mixed text, tables, and Markdown images stack within each body or column; the body placeholder is replaced with explicitly sized native elements when needed. HTTPS images must be accessible to Google. createImage preserves aspect ratio; background images stretch.
Permissions
Requires a Workspace and connector:backend-execute. Schema commands need no connection.
Global Options
The following global options can be used with orc slides:
For details and examples, see global options.