OfficeCLI Document Editing
Sylinko/Everywhere
Creates, reads, proofreads and edits Word, Excel and PowerPoint files through the officecli command line tool, with no Office installation needed.
Drives the Deckuse CLI to inspect, create, change and verify PowerPoint and Word files through versioned workspaces and batched edits.
$ npx skills add deckflow/deckuse --skill deckuse -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install deckflow/deckuse deckuse --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/deckflow/deckuse.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/deckuse .claude/skills/deckuse && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "deckuse" agent skill from https://github.com/deckflow/deckuse/tree/main/skills/deckuse into .claude/skills/deckuse/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "deckuse", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/deckflow/deckuse/tree/main/skills/deckuseType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add deckflow/deckuse --skill deckuse -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install deckflow/deckuse deckuse --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/deckflow/deckuse.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/deckuse .agents/skills/deckuse && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "deckuse" agent skill from https://github.com/deckflow/deckuse/tree/main/skills/deckuse into .agents/skills/deckuse/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "deckuse", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add deckflow/deckuse --skill deckuse -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install deckflow/deckuse deckuse --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/deckflow/deckuse.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/deckuse .cursor/skills/deckuse && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "deckuse" agent skill from https://github.com/deckflow/deckuse/tree/main/skills/deckuse into .cursor/skills/deckuse/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "deckuse", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/deckflow/deckuse.git --path skills/deckuse--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add deckflow/deckuse --skill deckuse -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install deckflow/deckuse deckuse --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/deckflow/deckuse.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/deckuse .gemini/skills/deckuse && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "deckuse" agent skill from https://github.com/deckflow/deckuse/tree/main/skills/deckuse into .gemini/skills/deckuse/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "deckuse", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install deckflow/deckuse deckuseInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add deckflow/deckuse --skill deckuse -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/deckflow/deckuse.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/deckuse .github/skills/deckuse && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "deckuse" agent skill from https://github.com/deckflow/deckuse/tree/main/skills/deckuse into .github/skills/deckuse/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "deckuse", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add deckflow/deckuse --skill deckuse -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install deckflow/deckuse deckuse --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/deckflow/deckuse.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/deckuse .opencode/skills/deckuse && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "deckuse" agent skill from https://github.com/deckflow/deckuse/tree/main/skills/deckuse into .opencode/skills/deckuse/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "deckuse", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
deckuseDrives the Deckuse CLI to inspect, create, change and verify PowerPoint and Word files through versioned workspaces and batched edits.
Deckuse is a local-first engine that treats a PPTX file as a versioned workspace. The skill tells the agent never to edit a `.pptx` in place: it creates a workspace with `deckuse new` for a blank template or `deckuse init` for an existing file, and each change updates `source/`, is committed through Git, is logged to `.deckuse/operations.jsonl` and rebuilds `package.pptx`.
Edits go through one batched `deckuse apply` call with a JSON operations file instead of many separate write commands, since every write makes a new revision. Shapes get stable addresses such as `slide:1/shape:2`, with forms for placeholders, runs, notes and table cells, and sizes accept px, pt, cm, mm, in or percent. The agent checks operation fields with `deckuse schema` instead of guessing. The description also covers rich text blocks, tables, charts and rendering checks, though the excerpt stops before those sections. It needs Deckuse 1.3.0 or later, community edition.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit caca5f2. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are json and bash).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Deckuse Office CLI loads about 3.4k tokens when it runs. Until then it costs about 74 tokens; SKILL.md has 1,139 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from deckflow/deckuse at commit caca5f2, republished under its AGPL-3.0 licence (© deckflow). 1,139 words, ~3,371 tokens.
.claude/skills/deckuse/SKILL.md (or your agent's skills folder).Requires CLI deckuse >= 1.3.0 (edition=community). Check with deckuse --version. If older, upgrade before following recipes below (new and recent apply/units features).
Deckuse is a local-first, schema-driven Office document automation engine for coding agents. It treats PPTX files as versioned workspaces, provides stable semantic addresses (slide:N/shape:ID), applies surgical atomic mutations, and tracks history via Git revisions.
Prefer deckuse schema --type addShape --json (or full deckuse schema --json) over guessing fields from memory.
.pptx in-place. Use deckuse new ./ws --json (bundled blank template) or deckuse init input.pptx ./ws --json (existing file). Mutations update source/, commit via Git, append .deckuse/operations.jsonl, and rebuild ./ws/package.pptx.apply:
Do NOT run many individual write CLIs. Each write = one revision + recompress. Prefer one JSON batch:deckuse apply --workspace ./ws --input ops.json --jsonxfrmSet / setTransform) belong in the same apply batch — do not loop deckuse xfrm.slide:1/shape:2, slide:1/shape:Title 1, slide:1/placeholder:titleslide:1/shape:2/run:0 for single-run setProperties (intra-paragraph styling)slide:1/notes is the speaker-notes body only (header / slide-number placeholders are ignored)slide:1/shape:3/cell:0:0 addresses a table cell; cell setProperties / get support text, paragraph.align, fill, font.size/font.family/font.color/font.weight/font.italic, stroke/border (line.color/line.width on get), and padding.left|right|top|bottom (pt)addShape with "name": "HeaderTitle", later ops in the same apply may target slide:N/shape:HeaderTitle. Cross-apply dry-runs cannot see uncommitted shapes — that is expected.px (96 DPI), pt, cm, mm, in, % (of slide). Bare numbers = EMU. Example: "x": "5%", "y": "120px".deckuse render --page N for visual QA. Combo/advanced charts emit COMBO_CHART_RENDER_LIMITED; explicit series colors emit CHART_SERIES_COLOR_UNVERIFIED. Confirm via ppt/charts/chart*.xml or PowerPoint. Pages without those charts omit a generic fidelity warning.master:* / layout:* / theme part contents → UNSUPPORTED_CAPABILITY.
Rebinding a slide's layout (setSlideLayout) is allowed — it only changes the relationship.deckuse monitor status (no --workspace) lists all running monitor start daemons (pid/port/workspace). Stop with --workspace <path> or stop --all. Foreground deckuse monitor is not tracked.[1. New or Init] ➔ [2. Inspect & Search] ➔ [3. Prepare & Apply Batch] ➔ [4. Validate & Render] ➔ [5. Export]deckuse new ./workspace --json (blank 16:9 title slide) unless you already have a master PPTX to init.% / px or deckuse measure --text … --font-size N --json.apply (inline fill/stroke/blocks/runs).deckuse validate then deckuse render --page N.apply containing multiple xfrmSet / setTransform ops (one revision).wrap: "none" and generous widths to avoid mid-word wraps; use anchor for valign.deckuse new ./workspace --json
# or: deckuse init master.pptx ./workspace --json
deckuse status --workspace ./workspace --json
deckuse list shapes --slide 1 --workspace ./workspace --json
deckuse apply --workspace ./workspace --input ops.json --json
deckuse validate --workspace ./workspace --json
deckuse render --page 1 --workspace ./workspace --output ./slide-1.png --json
deckuse export ./output.pptx --workspace ./workspace --jsonDefault export rebuilds from source/ (includes hand-edits). Use --from-package only to copy the existing snapshot. status.packageStale flags dirty source/.
setProperties keysCanonical: fontSize, bold, textColor, fill, stroke, paragraph.align (accepts center/ctr), wrap (none|square), anchor/valign (t|ctr|b), cornerRadius (0–1 on roundRect).
[
{
"type": "addShape",
"slide": 2,
"shapeType": "rect",
"name": "KpiRevenue",
"x": "5%",
"y": "120px",
"width": "28%",
"height": "100px",
"fill": { "color": "F0FDF4" },
"stroke": { "color": "BBF7D0", "width": 1 },
"blocks": [
{ "text": "总营收", "fontSize": 12, "textColor": "065F46" },
{ "text": "598 百万元", "fontSize": 24, "bold": true, "textColor": "059669" }
]
}
]Intra-paragraph color (e.g. red first letter) — runs is supported:
{
"type": "addShape",
"slide": 3,
"shapeType": "text",
"name": "BrandC",
"x": "5%",
"y": "80px",
"width": "40%",
"height": "60px",
"wrap": "none",
"blocks": [
{
"align": "left",
"runs": [
{ "text": "C", "fontSize": 28, "bold": true, "textColor": "DC2626" },
{ "text": "ustomer", "fontSize": 28, "bold": true, "textColor": "111827" }
]
}
]
}Rebind an existing slide to another layout without editing layout parts (community-safe). Prefer list layouts for indexes / display names first.
[
{ "type": "setSlideLayout", "slide": 1, "layout": "2" },
{ "type": "setSlideLayout", "slide": 1, "layout": "slide:3" },
{ "type": "setSlideLayout", "slide": 2, "layout": "Blank" }
]CLI: deckuse set slide-layout --slide 1 --layout 2 or --layout slide:3.
layout accepts: 1-based index, layout:N, slide:N (copy that slide's layout), display name (Blank), or basename (slideLayout2). Same refs work on addSlide.layout. This only updates the slide→slideLayout relationship; shapes are preserved. Writing layout:* / master:* part contents remains UNSUPPORTED_CAPABILITY.
height: "auto" is a heuristic (wrap + padding); still render and watch TABLE_HEIGHT_MAY_CLIP. If the frame was resized with xfrmSet only, follow with setTableLayout (height: "auto" or redistribute: "content"|"equal") — do not keep bumping xfrm --height. setTableLayout is a first-class apply / runCommand type (not batch-only).
{
"type": "addShape",
"slide": 1,
"shapeType": "table",
"name": "FinTable",
"x": "5%",
"y": "120px",
"width": "90%",
"height": "auto",
"theme": "zebra",
"alignColumns": ["left", "right", "right"],
"rows": [
["指标", "Q3", "Q4"],
["营收", "120", "135"],
["全年合计", "480", "510"]
]
}Shape vocabulary: line/connector; elbow / curved-connector; arrow / left-arrow / …; rounded-rect + cornerRadius; chevron, pentagon, trapezoid, triangle, circular-arrow, curved-right-arrow, curved-left-arrow.
[
{
"type": "addShape",
"slide": 1,
"shapeType": "chevron",
"name": "StepCollect",
"x": "5%",
"y": "200px",
"width": "28%",
"height": "64px",
"fill": { "color": "2563EB" },
"blocks": [{ "text": "Collect", "fontSize": 16, "textColor": "FFFFFF", "align": "center" }]
},
{
"type": "addShape",
"slide": 1,
"shapeType": "circular-arrow",
"name": "Loop",
"x": "40%",
"y": "320px",
"width": "120px",
"height": "120px",
"fill": { "color": "F59E0B" }
}
]Prefer column|bar|line|pie for render. Series color is written into chart XML. Community render may emit CHART_SERIES_COLOR_UNVERIFIED — verify XML or PowerPoint.
Only when no preset fits: shapeType: "image". Do not default to Pillow/SVG for connectors or arrows.
deckuse undo --workspace ./workspace --steps 1 --json--json for agents. On INVALID_COMMAND, read error.message (includes first field path) and error.diagnostics[] (path + message).TARGET_NOT_FOUND: list shapes; for dry-run, ensure the name was added in the same apply batch.UNSUPPORTED_CAPABILITY: community master/layout/theme gate.COMBO_CHART_RENDER_LIMITED / CHART_SERIES_COLOR_UNVERIFIED / TABLE_HEIGHT_MAY_CLIP / TABLE_OVERLAPS_SHAPE: warnings, not write failures.NOTES_SLIDE_MISMATCH: workspace cannot be written until deckuse repair --workspace ./ws --json (unambiguous notes back-pointers only).deckuse schema --type addShape --json.deckuse --version)?new or init)?apply batch?column/bar/line/pie when using render?error.diagnostics on failure (not only top-level message)?setTableLayout after frame-only resize if needed?status.data.valid / export.data.valid true before delivery (ok: true on export is not validation)?init.deckuse init input.pptx ./ws --json then deckuse status --workspace ./ws --json. Read data.valid and data.diagnostics.NOTES_SLIDE_MISMATCH appears and diagnostics show a single owning slide, run deckuse repair --workspace ./ws --json. Shared or unowned notes parts return AMBIGUOUS_REFERENCE — do not guess.apply. Prefer duplicate + local text over rewriting untouched slides.deckuse validate --workspace ./ws --json after writes. export still writes the file when invalid: treat data.valid as the gate, not envelope ok.init → export (pretty-printed XML, [Content_Types].xml) are normalization, not content edits. Compare slide XML you intended to change; confirm in PowerPoint.insertRow / insertColumn, read TABLE_OVERLAPS_SHAPE.details.candidates and run one setTableLayout from that list in the same or next apply. Check whether the overlap warning remains after layout.deckuse render --page N --json. COMBO_CHART_RENDER_LIMITED means the PNG may be a placeholder; CHART_SERIES_COLOR_UNVERIFIED means legend/series fills may not match PowerPoint. Confirm ppt/charts/*.xml or open the exported PPTX.render / monitor as the final visual sign-off.Same workspace loop as PPTX. Do not send slide geometry (addShape, xfrmSet, alignElements, zMove); those return UNSUPPORTED_CAPABILITY.
deckuse new ./workspace --format docx --json
# or: deckuse init report.docx ./workspace --json
deckuse list paragraphs --workspace ./workspace --json
deckuse apply --workspace ./workspace --input ops.json --json
deckuse validate --workspace ./workspace --json
deckuse export ./output.docx --workspace ./workspace --jsonnew without --format stays PPTX.
body/p:3 — 1-based body paragraph (tables are not paragraphs)body/p:3/run:0 — 0-based runpara:1A2B3C4D — w14:paraIdbookmark:Intro — bookmark. addParagraph.name creates one for same-batch forward refsbody/table:1/row:2/cell:1/p:1style:Heading1 — read only. Apply it with paragraph.style; do not write styles.xmlreplaceTextWord often splits one sentence across w:r nodes (w:proofErr, direct formatting). replaceText concatenates visible w:t text inside one paragraph, then splices only the matched span and keeps neighboring rPr. It fails instead of rewriting tracked changes, fields, comments, content controls, or equations.
[
{
"type": "addParagraph",
"after": "body/p:1",
"style": "Heading1",
"name": "Intro",
"blocks": [{ "text": "总营收", "fontSize": 16, "bold": true }]
},
{ "type": "setText", "target": "bookmark:Intro", "value": "Updated" },
{
"type": "addTable",
"name": "FinTable",
"rows": [
["指标", "Q3"],
["营收", "120"]
]
}
]deckuse render --page does not paginate DOCX. @deckflow/deck2html converts PPTX only. Export and open the file in Word for layout checks.
Schema: deckuse schema --type addParagraph --json.
© deckflow, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/deckuse of deckflow/deckuse.
Open the folder on GitHubat commit caca5f2
Deckuse Office CLI next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Deckuse Office CLI this skilldeckflow/deckuse | 109 | — | ~3.4k | Automated safety check: Pass | AGPL-3.0 | |
| OfficeCLI Document EditingSylinko/Everywhere | 6.3k | 8 repos | ~6.3k | Automated safety check: Pass | Custom licence | |
| MarkitdownImCa0/just-laws | 781 | 14 repos | ~3.2k | Automated safety check: Notes | MIT | |
| Office File TransformCherryHQ/cherry-studio | 52k | — | ~4.7k | Automated safety check: Pass | AGPL-3.0 | |
| MinerU Document Readeropendatalab/MinerU | 81k | — | ~9.4k | Automated safety check: Warn | Custom licence | |
| GenOffice Document CLIgenspark-ai/genoffice | 8.8k | — | ~19k | Automated safety check: Pass | Apache-2.0 |
Sylinko/Everywhere
Creates, reads, proofreads and edits Word, Excel and PowerPoint files through the officecli command line tool, with no Office installation needed.
ImCa0/just-laws
Convert files and office documents to Markdown. An agent skill from ImCa0/just-laws.
CherryHQ/cherry-studio
Derives new files from a selected part of a spreadsheet, Word document, PDF or slide deck, such as a cell range, paragraph, page or slide, without ever modifying the source file.
opendatalab/MinerU
Reads, OCRs, searches and cites local documents through the mineru CLI, covering PDF, images, Office files, EPUB, HTML and CSV.
genspark-ai/genoffice
Creates, converts, reads and edits real pptx, xlsx, docx and PDF files locally through the genoffice command line.
plutext/docx4j
A skill your agent uses when writing Java code that creates, reads or edits Word (.docx), PowerPoint (.pptx) or Excel (.xlsx) files with docx4j — including generating documents, editing existing…
Works with
Categories
Drives the Deckuse CLI to inspect, create, change and verify PowerPoint and Word files through versioned workspaces and batched edits. Deckuse is a local-first engine that treats a PPTX file as a versioned workspace.pptx`.
Deckuse Office CLI fits situations like: building or restyling a PowerPoint deck from the command line; applying many slide edits in one batch; verifying a slide or Word file after changes with a rendering check.
Run `npx skills add deckflow/deckuse --skill deckuse -a claude-code`. Or copy the skill folder (skills/deckuse in deckflow/deckuse) into .claude/skills/deckuse in your project. Claude Code loads it when a task matches its description.
Run `npx skills add deckflow/deckuse --skill deckuse -a codex`. Or copy the skill folder (skills/deckuse in deckflow/deckuse) into .agents/skills/deckuse in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add deckflow/deckuse --skill deckuse -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/deckuse, .gemini/skills/deckuse, .github/skills/deckuse and .opencode/skills/deckuse in your project.
SKILL.md names no scripts, command-line tools or credentials: Deckuse Office CLI is instructions for the agent only. Our summary lists: Deckuse CLI version 1.3.0 or later (community edition).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Deckuse Office CLI is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.4k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Deckuse Office CLI: OfficeCLI Document Editing (Sylinko/Everywhere, 6.3k stars), Markitdown (ImCa0/just-laws, 781 stars), Office File Transform (CherryHQ/cherry-studio, 52k stars) and MinerU Document Reader (opendatalab/MinerU, 81k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
deckflow (a GitHub organization) maintains it in deckflow/deckuse, which has 109 GitHub stars. The repository was last updated on October 4, 2026.
Source: deckflow/deckuse on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.