Not in the top 1,000 by GitHub stars
metadist/synaplan-desktop
Synaplan Desktop — pair a computer with your Synaplan workspace and run Agent Skills locally (Windows, macOS, Linux)
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
skills/bundled/calendar-event/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → 2248c82f04fe
No earlier version was observed for comparison.
skills/bundled/chart/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → 2248c82f04fe
No earlier version was observed for comparison.
skills/bundled/csv-insights/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → 2248c82f04fe
No earlier version was observed for comparison.
skills/bundled/data-table/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → 2248c82f04fe
No earlier version was observed for comparison.
skills/bundled/docx/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → 2248c82f04fe
No earlier version was observed for comparison.
skills/bundled/email-draft/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → 2248c82f04fe
No earlier version was observed for comparison.
skills/bundled/hello-files/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 2248c82f04fe
No earlier version was observed for comparison.
skills/bundled/invoice/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → 2248c82f04fe
No earlier version was observed for comparison.
skills/bundled/json-csv/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → 2248c82f04fe
No earlier version was observed for comparison.
skills/bundled/pptx/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → 2248c82f04fe
No earlier version was observed for comparison.
skills/bundled/slides/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → 2248c82f04fe
No earlier version was observed for comparison.
skills/bundled/vcard/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → 2248c82f04fe
No earlier version was observed for comparison.
skills/bundled/web-report/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → 2248c82f04fe
No earlier version was observed for comparison.
skills/bundled/xlsx/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → 2248c82f04fe
No earlier version was observed for comparison.
Verified commit 2248c82f04fe818f260bd8ddac1ba503324a06ef
git clone --filter=blob:none --no-checkout https://github.com/metadist/synaplan-desktop.git .hotskills/metadist-synaplan-desktop && git -C .hotskills/metadist-synaplan-desktop checkout --detach 2248c82f04fe818f260bd8ddac1ba503324a06ef
# Copy each selected skill directory from .hotskills/metadist-synaplan-desktop into .agents/skills/<skill-name>/Heat
5.7- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
- calendar-event
skills/bundled/calendar-event - chart
skills/bundled/chart - csv-insights
skills/bundled/csv-insights - data-table
skills/bundled/data-table - docx
skills/bundled/docx - email-draft
skills/bundled/email-draft - hello-files
skills/bundled/hello-files - invoice
skills/bundled/invoice - json-csv
skills/bundled/json-csv - pptx
skills/bundled/pptx - slides
skills/bundled/slides - vcard
skills/bundled/vcard - web-report
skills/bundled/web-report - xlsx
skills/bundled/xlsx
How it works
calendar-event
When your agent uses it
Create an .ics calendar invite (title, start, end, location, description) that opens in Outlook, Apple Calendar, or Google Calendar.
What it loads into context
Frontmatter
36 tokensAlways available to the agent
SKILL.md
190 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- How to run
Scripts executed separately
run.py
Files
SKILL.mdcore743 bytesrun.pyruns2,725 bytes
Read SKILL.md
# calendar-event
Write a standard `.ics` file the user can double-click to add an event to their
calendar. Nothing is scheduled or sent automatically — it only writes the file.
## How to run
```
python3 <skill_dir>/run.py <output.ics> <title> <start> <end> [location] [description]
```
- `<output.ics>` — a path **inside the out-box**.
- `<start>` / `<end>` — `"YYYY-MM-DD HH:MM"` for a timed event, or `"YYYY-MM-DD"`
for an all-day event.View the complete source on GitHubchart
When your agent uses it
Turn a CSV into a clean bar or line chart, embedded as an SVG in a standalone HTML page (multi-series, light and dark, no dependencies).
What it loads into context
Frontmatter
37 tokensAlways available to the agent
SKILL.md
209 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- How to run
Scripts executed separately
run.py
Files
SKILL.mdcore819 bytesrun.pyruns6,528 bytes
Read SKILL.md
# chart
Render a CSV as a good-looking chart. The first column is the category (x-axis);
every other numeric column becomes a series. Bars are grouped; lines are drawn per
series. The result is one self-contained HTML file that opens in any browser.
## How to run
```
python3 <skill_dir>/run.py <input.csv> <output.html> [--type bar|line] [--title "Title"]
```
- `<input.csv>` — a CSV with a header row (an allowed folder, or the out-box).
- `<output.html>` — a path **inside the out-box**.View the complete source on GitHubcsv-insights
When your agent uses it
Profile a CSV file and produce a Markdown report with row/column counts, fill rates, unique values, and numeric or categorical summaries.
What it loads into context
Frontmatter
35 tokensAlways available to the agent
SKILL.md
209 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- How to run
Scripts executed separately
run.py
Files
SKILL.mdcore875 bytesrun.pyruns2,744 bytes
Read SKILL.md
# CSV insights
Turn a CSV file into a readable Markdown report: total rows and columns, and for
each column its fill rate, unique values, and either numeric stats
(min/max/mean/std) or the most common categories.
## How to run
Run with Python. Pass the input CSV and an output Markdown path inside the
out-box:
```
python3 <skill_dir>/run.py <input.csv> <output.md> [title]
```View the complete source on GitHubdata-table
When your agent uses it
Turn a CSV into a searchable, click-to-sort HTML table in one self-contained file (light and dark, no external assets).
What it loads into context
Frontmatter
33 tokensAlways available to the agent
SKILL.md
158 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- How to run
Scripts executed separately
run.py
Files
SKILL.mdcore641 bytesrun.pyruns4,296 bytes
Read SKILL.md
# data-table
Make a CSV easy to explore: a standalone HTML page with a live search box and
sortable columns (numeric-aware). No internet, no dependencies.
## How to run
```
python3 <skill_dir>/run.py <input.csv> <output.html> [title]
```
- `<input.csv>` — a CSV with a header row (an allowed folder, or the out-box).
- `<output.html>` — a path **inside the out-box**.
- `[title]` — optional page title.View the complete source on GitHubdocx
When your agent uses it
Write a real Word document (.docx) from Markdown — headings, lists, tables, pictures and native editable charts — or read a .docx back to Markdown. Standard library only, no Word needed.
What it loads into context
Frontmatter
64 tokensAlways available to the agent
SKILL.md
509 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to use
- How to run
- Markdown the writer understands
Scripts executed separately
run.py
Files
SKILL.mdcore1,882 bytesrun.pyruns30,277 bytes
Read SKILL.md
# docx
Create a `.docx` that opens in Word, LibreOffice and Google Docs, or read an
existing `.docx` so its text can be summarised, merged or rewritten. No extra
packages: the script builds the OOXML package itself.
## When to use
- The user wants a Word file: report, memo, thesis chapter, meeting notes.
- The user wants a **document with graphs** — use a `chart` block, it becomes
a native Word chart the user can restyle.
- The user has `.docx` files in an allowed folder and wants their content
(read them first, then write the new document).
View the complete source on GitHubemail-draft
When your agent uses it
Compose a local .eml email draft (recipient, subject, body) that opens as an editable, unsent message in Outlook, Apple Mail, or Thunderbird.
What it loads into context
Frontmatter
41 tokensAlways available to the agent
SKILL.md
258 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- How to run
Scripts executed separately
run.py
Files
SKILL.mdcore968 bytesrun.pyruns1,834 bytes
Read SKILL.md
# email-draft
Write a ready-to-review `.eml` draft to the out-box. It is marked unsent, so
double-clicking it opens an editable draft in the user's mail client — nothing is
ever sent from this computer.
## How to run
```
python3 <skill_dir>/run.py <output.eml> <to> <subject> <body>
python3 <skill_dir>/run.py <output.eml> <to> <subject> --body-file <body.txt>
```
- `<output.eml>` — a path **inside the out-box**.View the complete source on GitHubhello-files
When your agent uses it
A tiny example skill that writes a hello.txt file into your out-box, to show that local file writing works safely.
What it loads into context
Frontmatter
31 tokensAlways available to the agent
SKILL.md
137 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Steps
Files
SKILL.mdcore587 bytes
Read SKILL.md
# hello-files
This is a minimal example skill included with Synaplan Desktop. Use it to confirm
that a skill can create a file on this computer, inside the out-box, under the
folder allowlist.
## Steps
1. Use the `Write` tool to create `hello.txt` in the out-box with a friendly,
one-line greeting.
2. Tell the user the full path where the file was saved.
This skill does not run any programs — it only writes a text file.View the complete source on GitHubinvoice
When your agent uses it
Turn a JSON spec into a clean, print-ready HTML invoice with line totals, subtotal, optional tax, and grand total.
What it loads into context
Frontmatter
31 tokensAlways available to the agent
SKILL.md
317 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- How to run
Scripts executed separately
run.py
Files
SKILL.mdcore1,060 bytesrun.pyruns6,099 bytes
Read SKILL.md
# invoice
Create a professional, print-ready invoice as one self-contained HTML file
(open it and print to PDF from the browser).
## How to run
1. First write the invoice spec as JSON into the out-box with the `Write` tool
(e.g. `invoice.json`):
```json
{
"number": "INV-1001",
"date": "2026-09-01",View the complete source on GitHubjson-csv
When your agent uses it
Convert between JSON and CSV. A JSON array of objects becomes a CSV, and a CSV becomes a JSON array of objects. Direction follows the file extensions.
What it loads into context
Frontmatter
39 tokensAlways available to the agent
SKILL.md
178 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- How to run
Scripts executed separately
run.py
Files
SKILL.mdcore738 bytesrun.pyruns2,246 bytes
Read SKILL.md
# json-csv
Convert tabular data between formats. Direction is chosen automatically from the
input and output extensions.
## How to run
```
python3 <skill_dir>/run.py <input.json> <output.csv> # JSON array of objects -> CSV
python3 <skill_dir>/run.py <input.csv> <output.json> # CSV -> JSON array of objects
```
- Both paths must be in an allowed folder or the **out-box** (write to the out-box).
- JSON input must be an array of objects (a single object is also accepted).View the complete source on GitHubpptx
When your agent uses it
Write a real PowerPoint deck (.pptx) from a Markdown outline — title slide, bullet slides, pictures and native editable charts — or read a .pptx back to Markdown. Standard library only, no PowerPoint needed.
What it loads into context
Frontmatter
68 tokensAlways available to the agent
SKILL.md
565 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to use
- How to run
- Outline the writer understands
Scripts executed separately
run.py
Files
SKILL.mdcore2,125 bytesrun.pyruns34,148 bytes
Read SKILL.md
# pptx
Create a `.pptx` that opens in PowerPoint, Keynote, LibreOffice Impress and
Google Slides, or read an existing deck so its content can be summarised or
reused. No extra packages: the script builds the OOXML package itself.
This skill is original to Synaplan Desktop (Apache-2.0). It is not Anthropic's
document skill.
## When to use
- The user asks for a PowerPoint deck, `.pptx`, or slides that open in
PowerPoint.
- For a browser slideshow instead, use the **slides** skill.View the complete source on GitHubslides
When your agent uses it
Build a self-contained HTML presentation from a simple JSON outline — arrow-key navigation, gradient theme, no dependencies, opens in any browser.
What it loads into context
Frontmatter
33 tokensAlways available to the agent
SKILL.md
268 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- How to run
Scripts executed separately
run.py
Files
SKILL.mdcore1,045 bytesrun.pyruns5,324 bytes
Read SKILL.md
# slides
Create a polished, standalone presentation as a single `.html` file. Navigate with
the arrow keys or space; it needs no PowerPoint and no internet.
## How to run
1. First write the outline as JSON into the out-box with the `Write` tool
(e.g. `deck.json`):
```json
{
"title": "Q3 Review",
"subtitle": "Optional subtitle",View the complete source on GitHubvcard
When your agent uses it
Create a .vcf contact card (name, email, phone, organization, title) that imports into any address book.
What it loads into context
Frontmatter
32 tokensAlways available to the agent
SKILL.md
158 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- How to run
Scripts executed separately
run.py
Files
SKILL.mdcore545 bytesrun.pyruns1,477 bytes
Read SKILL.md
# vcard
Write a standard vCard (`.vcf`) the user can import into their contacts.
## How to run
```
python3 <skill_dir>/run.py <output.vcf> <full_name> [email] [phone] [org] [title]
```
- `<output.vcf>` — a path **inside the out-box**.
- `<full_name>` — e.g. `"Jane Doe"`.
- `[email]`, `[phone]`, `[org]`, `[title]` — optional.
View the complete source on GitHubweb-report
When your agent uses it
Turn Markdown or plain text into a polished, self-contained HTML page (light and dark, system fonts, no external assets) that opens in any browser.
What it loads into context
Frontmatter
38 tokensAlways available to the agent
SKILL.md
214 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- How to run
Scripts executed separately
run.py
Files
SKILL.mdcore868 bytesrun.pyruns5,015 bytes
Read SKILL.md
# web-report
Render Markdown/plain text into one good-looking, standalone `.html` file. Supports
headings, bold/italic, inline code, bullet and numbered lists, quotes, links, and
horizontal rules. No external assets — the page works offline.
## How to run
1. First write the content as Markdown into the out-box with the `Write` tool
(e.g. `report.md`).
2. Then convert it:
```
python3 <skill_dir>/run.py <input.md> <output.html> [title]View the complete source on GitHubxlsx
When your agent uses it
Write a real Excel workbook (.xlsx) from JSON or CSV — several sheets, styled header, numbers, formulas, a SUM total row — or read an existing .xlsx back to JSON/CSV. Standard library only, no Excel needed.
What it loads into context
Frontmatter
70 tokensAlways available to the agent
SKILL.md
488 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to use
- How to run
- Spec for write
Scripts executed separately
run.py
Files
SKILL.mdcore1,815 bytesrun.pyruns17,424 bytes
Read SKILL.md
# xlsx
Create a `.xlsx` that opens in Excel, LibreOffice Calc and Google Sheets, or
read one so its numbers can be analysed, merged or re-shaped. No extra
packages: the script builds the OOXML package itself.
## When to use
- The user wants a spreadsheet: a summary table, merged data from several
workbooks, a list with totals.
- The user has `.xlsx` files in an allowed folder and wants to combine or
analyse them — **read** each one first, then **write** the result.
## How to runView the complete source on GitHubSkills included
- calendar-event
- chart
- csv-insights
- data-table
- docx
- email-draft
- hello-files
- invoice
- json-csv
- pptx
- slides
- vcard
- web-report
- xlsx
Repository facts
- License
- Apache-2.0
- Created
- Aug 31, 2026
- Last pushed
- Oct 27, 2026
- Forks
- 30
- Open issues
- 2
- Project activity
- Active
Before you install
Local scriptsAutomated signals, not a guarantee
Checked Nov 6, 2026
- No broad tool permissions
- No dangerous shell commands
- 95 network referencesin 3 files: pptx/run.py:44 docx/run.py:44 xlsx/run.py:43
- No hidden or obfuscated text
- No instruction overrides
- 13 executable scriptsin 13 files: calendar-event/run.py:1 chart/run.py:1 csv-insights/run.py:1 and 10 more
- No access to secrets
- No requests to vote in Hot
Show all 108 signals by file
skills/bundled/calendar-event/run.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/bundled/chart/run.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/bundled/csv-insights/run.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/bundled/data-table/run.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/bundled/docx/run.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 44
NS_W = "http://schemas.openxmlformats.org/wordprocessingml/2006/main" - Network accessline 45
NS_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships" - Network accessline 47
CONTENT_TYPES = """<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"> - Network accessline 48
<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"> - Network accessline 59
ROOT_RELS = """<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"> - Network accessline 60
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"> - Network accessline 61
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="word/document.xml"/> - Network accessline 65
STYLES = """<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <w:styles xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"> - Network accessline 66
<w:styles xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"> - Network accessline 84
NUMBERING = """<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <w:numbering xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"> - Network accessline 85
<w:numbering xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"> - Network accessline 99
DOCUMENT = """<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:wp= - Network accessline 100
<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawin - Network accessline 201
f'<wp:inline distT="0" distB="0" distL="0" distR="0"><wp:extent cx="{cx}" cy="{cy}"/>' f'<wp:docPr id="{docpr_id}" name="Picture {docpr_id}" descr="{attr(caption)}"/>' f'<a:graphic><a:graphicData uri="http://schemas.openxmlf - Network accessline 202
f'<wp:docPr id="{docpr_id}" name="Picture {docpr_id}" descr="{attr(caption)}"/>' f'<a:graphic><a:graphicData uri="http://schemas.openxmlformats.org/drawingml/2006/picture">' f'<pic:pic><pic:nvPicPr><pic:cNvPr id="{docpr_id}" - Network accessline 203
f'<a:graphic><a:graphicData uri="http://schemas.openxmlformats.org/drawingml/2006/picture">' - Network accessline 218
f'<wp:inline distT="0" distB="0" distL="0" distR="0"><wp:extent cx="{cx}" cy="{cy}"/>' f'<wp:docPr id="{docpr_id}" name="Chart {docpr_id}"/>' f'<a:graphic><a:graphicData uri="http://schemas.openxmlformats.org/drawingml/2006/ - Network accessline 219
f'<wp:docPr id="{docpr_id}" name="Chart {docpr_id}"/>' f'<a:graphic><a:graphicData uri="http://schemas.openxmlformats.org/drawingml/2006/chart">' f'<c:chart r:id="{rid}"/></a:graphicData></a:graphic></wp:inline></w:drawing>< - Network accessline 220
f'<a:graphic><a:graphicData uri="http://schemas.openxmlformats.org/drawingml/2006/chart">' - Network accessline 333
return ( '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>' '<c:chartSpace xmlns:c="http://schemas.openxmlformats.org/drawingml/2006/chart" xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:r="http - Network accessline 334
'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>' '<c:chartSpace xmlns:c="http://schemas.openxmlformats.org/drawingml/2006/chart" xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:r="http://schemas.openxm - Network accessline 335
'<c:chartSpace xmlns:c="http://schemas.openxmlformats.org/drawingml/2006/chart" xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">' - Network accessline 352
self.body: list[str] = [] self.rels: list[str] = [ '<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/>', - Network accessline 353
self.rels: list[str] = [ '<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/>', '<Relationship Id="rId2" Type="http://schemas.openxmlformats - Network accessline 354
'<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/>', - Network accessline 355
'<Relationship Id="rId2" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering" Target="numbering.xml"/>', - Network accessline 390
rid = self.rid() self.rels.append( f'<Relationship Id="{rid}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image" Target="media/{name}"/>' - Network accessline 391
self.rels.append( f'<Relationship Id="{rid}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image" Target="media/{name}"/>' ) - Network accessline 392
f'<Relationship Id="{rid}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image" Target="media/{name}"/>' - Network accessline 402
rid = self.rid() self.rels.append( f'<Relationship Id="{rid}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart" Target="charts/chart{n}.xml"/>' - Network accessline 403
self.rels.append( f'<Relationship Id="{rid}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart" Target="charts/chart{n}.xml"/>' ) - Network accessline 404
f'<Relationship Id="{rid}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart" Target="charts/chart{n}.xml"/>' - Network accessline 413
rels = ( '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>' '<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">' - Network accessline 414
'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>' '<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">' + "".join(self.rels) - Network accessline 415
'<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">'
skills/bundled/email-draft/run.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/bundled/invoice/run.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/bundled/json-csv/run.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/bundled/pptx/run.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 44
NS_A = "http://schemas.openxmlformats.org/drawingml/2006/main" - Network accessline 45
NS_P = "http://schemas.openxmlformats.org/presentationml/2006/main" - Network accessline 46
NS_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships" - Network accessline 47
NS_PKG = "http://schemas.openxmlformats.org/package/2006/relationships" - Network accessline 51
CONTENT_TYPES = """<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"> - Network accessline 52
<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"> - Network accessline 64
ROOT_RELS = f"""<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Relationships xmlns="{NS_PKG}"> <Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="ppt/presentat - Network accessline 65
<Relationships xmlns="{NS_PKG}"> <Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="ppt/presentation.xml"/> </Relationships> - Network accessline 66
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="ppt/presentation.xml"/> - Network accessline 92
SLIDE_MASTER_RELS = f"""<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Relationships xmlns="{NS_PKG}"> <Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout" Target="../slide - Network accessline 93
<Relationships xmlns="{NS_PKG}"> <Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout" Target="../slideLayouts/slideLayout1.xml"/> <Relationship Id="rId2" Type="http://schemas.openxml - Network accessline 94
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout" Target="../slideLayouts/slideLayout1.xml"/> - Network accessline 95
<Relationship Id="rId2" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme" Target="../theme/theme1.xml"/> - Network accessline 103
SLIDE_LAYOUT_RELS = f"""<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Relationships xmlns="{NS_PKG}"> <Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideMaster" Target="../slide - Network accessline 104
<Relationships xmlns="{NS_PKG}"> <Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideMaster" Target="../slideMasters/slideMaster1.xml"/> </Relationships> - Network accessline 105
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideMaster" Target="../slideMasters/slideMaster1.xml"/> - Network accessline 206
f'<p:graphicFrame><p:nvGraphicFramePr><p:cNvPr id="{shape_id}" name="Table {shape_id}"/><p:cNvGraphicFramePr><a:graphicFrameLocks noGrp="1"/></p:cNvGraphicFramePr><p:nvPr/></p:nvGraphicFramePr>' f'<p:xfrm><a:off x="{x}" y="{y}"/><a: - Network accessline 207
f'<p:xfrm><a:off x="{x}" y="{y}"/><a:ext cx="{col_w * cols}" cy="{row_h * len(rows)}"/></p:xfrm>' f'<a:graphic><a:graphicData uri="http://schemas.openxmlformats.org/drawingml/2006/table">' f'<a:tbl><a:tblPr firstRow="1" band - Network accessline 208
f'<a:graphic><a:graphicData uri="http://schemas.openxmlformats.org/drawingml/2006/table">' - Network accessline 217
f'<p:graphicFrame><p:nvGraphicFramePr><p:cNvPr id="{shape_id}" name="Chart {shape_id}"/><p:cNvGraphicFramePr/><p:nvPr/></p:nvGraphicFramePr>' f'<p:xfrm><a:off x="{x}" y="{y}"/><a:ext cx="{w}" cy="{h}"/></p:xfrm>' f'<a:graphi - Network accessline 218
f'<p:xfrm><a:off x="{x}" y="{y}"/><a:ext cx="{w}" cy="{h}"/></p:xfrm>' f'<a:graphic><a:graphicData uri="http://schemas.openxmlformats.org/drawingml/2006/chart">' f'<c:chart xmlns:c="http://schemas.openxmlformats.org/drawingm - Network accessline 219
f'<a:graphic><a:graphicData uri="http://schemas.openxmlformats.org/drawingml/2006/chart">' - Network accessline 220
f'<c:chart xmlns:c="http://schemas.openxmlformats.org/drawingml/2006/chart" r:id="{rid}"/></a:graphicData></a:graphic></p:graphicFrame>' - Network accessline 313
return ( '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>' f'<c:chartSpace xmlns:c="http://schemas.openxmlformats.org/drawingml/2006/chart" xmlns:a="{NS_A}" xmlns:r="{NS_R}">' - Network accessline 314
'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>' f'<c:chartSpace xmlns:c="http://schemas.openxmlformats.org/drawingml/2006/chart" xmlns:a="{NS_A}" xmlns:r="{NS_R}">' '<c:roundedCorners val="0"/><c:chart>' + title + - Network accessline 315
f'<c:chartSpace xmlns:c="http://schemas.openxmlformats.org/drawingml/2006/chart" xmlns:a="{NS_A}" xmlns:r="{NS_R}">' - Network accessline 414
def content_slide(self, slide: Slide) -> None: rels: list[str] = ['<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout" Target="../slideLayouts/slideLayout1.xml"/>'] - Network accessline 415
rels: list[str] = ['<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout" Target="../slideLayouts/slideLayout1.xml"/>'] - Network accessline 453
self.charts.append(chart_xml(slide.chart)) rid = f"rId{len(rels) + 1}" rels.append(f'<Relationship Id="{rid}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart" Target="../charts - Network accessline 454
rid = f"rId{len(rels) + 1}" rels.append(f'<Relationship Id="{rid}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart" Target="../charts/chart{len(self.charts)}.xml"/>') shapes.ap - Network accessline 455
rels.append(f'<Relationship Id="{rid}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart" Target="../charts/chart{len(self.charts)}.xml"/>') - Network accessline 467
self.media.append((name, data)) rid = f"rId{len(rels) + 1}" rels.append(f'<Relationship Id="{rid}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image" Target="../media/{na - Network accessline 468
rid = f"rId{len(rels) + 1}" rels.append(f'<Relationship Id="{rid}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image" Target="../media/{name}"/>') shapes.append(picture(s - Network accessline 469
rels.append(f'<Relationship Id="{rid}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image" Target="../media/{name}"/>') - Network accessline 484
) self.slides_xml.append(xml) rels = ['<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout" Target="../slideLayouts/slideLayout1.xml"/>'] - Network accessline 485
self.slides_xml.append(xml) rels = ['<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout" Target="../slideLayouts/slideLayout1.xml"/>'] rels.extend(extra_rels) - Network accessline 486
rels = ['<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout" Target="../slideLayouts/slideLayout1.xml"/>'] - Network accessline 507
"</p:presentation>" ) pres_rels = ['<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideMaster" Target="slideMasters/slideMaster1.xml"/>'] - Network accessline 508
) pres_rels = ['<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideMaster" Target="slideMasters/slideMaster1.xml"/>'] pres_rels += [ - Network accessline 509
pres_rels = ['<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideMaster" Target="slideMasters/slideMaster1.xml"/>'] - Network accessline 510
pres_rels += [ f'<Relationship Id="rId{i + 2}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slide" Target="slides/slide{i + 1}.xml"/>' for i in range(n) - Network accessline 511
f'<Relationship Id="rId{i + 2}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slide" Target="slides/slide{i + 1}.xml"/>' - Network accessline 512
for i in range(n) ] pres_rels.append(f'<Relationship Id="rId{n + 2}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme" Target="theme/theme1.xml"/>') - Network accessline 514
pres_rels.append(f'<Relationship Id="rId{n + 2}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme" Target="theme/theme1.xml"/>')
skills/bundled/slides/run.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/bundled/vcard/run.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/bundled/web-report/run.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/bundled/xlsx/run.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 43
NS_MAIN = "http://schemas.openxmlformats.org/spreadsheetml/2006/main" - Network accessline 44
NS_REL = "http://schemas.openxmlformats.org/officeDocument/2006/relationships" - Network accessline 45
NS_PKG = "http://schemas.openxmlformats.org/package/2006/relationships" - Network accessline 47
CONTENT_TYPES = """<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"> - Network accessline 48
<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"> - Network accessline 56
ROOT_RELS = """<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"> - Network accessline 57
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"> - Network accessline 58
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/> - Network accessline 62
STYLES = """<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <styleSheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"> - Network accessline 63
<styleSheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"> - Network accessline 233
) rels = "".join( f'<Relationship Id="rId{i + 1}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet{i + 1}.xml"/>' - Network accessline 234
rels = "".join( f'<Relationship Id="rId{i + 1}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet{i + 1}.xml"/>' for i in range(len(named)) - Network accessline 235
f'<Relationship Id="rId{i + 1}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet{i + 1}.xml"/>' - Network accessline 236
for i in range(len(named)) ) rels += f'<Relationship Id="rId{len(named) + 1}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/>' - Network accessline 237
) rels += f'<Relationship Id="rId{len(named) + 1}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/>' workbook_rels = f'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Re - Network accessline 238
rels += f'<Relationship Id="rId{len(named) + 1}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/>'
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Declared and executed: 3 facts
- Contacts schemas.openxmlformats.org, which SKILL.md, the README and the plugin manifest do not mentiondocx/run.py:44High confidence
- Contacts schemas.openxmlformats.org, which SKILL.md, the README and the plugin manifest do not mentionpptx/run.py:44High confidence
- Contacts schemas.openxmlformats.org, which SKILL.md, the README and the plugin manifest do not mentionxlsx/run.py:43High confidence
Signal confidence: 108 facts
- Executable script in code of a file that runscalendar-event/run.py:1High confidence
- Executable script in code of a file that runschart/run.py:1High confidence
- Executable script in code of a file that runscsv-insights/run.py:1High confidence
- Executable script in code of a file that runsdata-table/run.py:1High confidence
- Executable script in code of a file that runsdocx/run.py:1High confidence
- Network access in code of a file that runsdocx/run.py:44High confidence
- Network access in code of a file that runsdocx/run.py:45High confidence
- Network access in code of a file that runsdocx/run.py:47High confidence
- Network access in code of a file that runsdocx/run.py:48High confidence
- Network access in code of a file that runsdocx/run.py:59High confidence
- Network access in code of a file that runsdocx/run.py:60High confidence
- Network access in code of a file that runsdocx/run.py:61High confidence
- Network access in code of a file that runsdocx/run.py:65High confidence
- Network access in code of a file that runsdocx/run.py:66High confidence
- Network access in code of a file that runsdocx/run.py:84High confidence
- Network access in code of a file that runsdocx/run.py:85High confidence
- Network access in code of a file that runsdocx/run.py:99High confidence
- Network access in code of a file that runsdocx/run.py:100High confidence
- Network access in code of a file that runsdocx/run.py:201High confidence
- Network access in code of a file that runsdocx/run.py:202High confidence
- Network access in code of a file that runsdocx/run.py:203High confidence
- Network access in code of a file that runsdocx/run.py:218High confidence
- Network access in code of a file that runsdocx/run.py:219High confidence
- Network access in code of a file that runsdocx/run.py:220High confidence
- Network access in code of a file that runsdocx/run.py:333High confidence
- Network access in code of a file that runsdocx/run.py:334High confidence
- Network access in code of a file that runsdocx/run.py:335High confidence
- Network access in code of a file that runsdocx/run.py:352High confidence
- Network access in code of a file that runsdocx/run.py:353High confidence
- Network access in code of a file that runsdocx/run.py:354High confidence
- Network access in code of a file that runsdocx/run.py:355High confidence
- Network access in code of a file that runsdocx/run.py:390High confidence
- Network access in code of a file that runsdocx/run.py:391High confidence
- Network access in code of a file that runsdocx/run.py:392High confidence
- Network access in code of a file that runsdocx/run.py:402High confidence
- Network access in code of a file that runsdocx/run.py:403High confidence
- Network access in code of a file that runsdocx/run.py:404High confidence
- Network access in code of a file that runsdocx/run.py:413High confidence
- Network access in code of a file that runsdocx/run.py:414High confidence
- Network access in code of a file that runsdocx/run.py:415High confidence
- Executable script in code of a file that runsemail-draft/run.py:1High confidence
- Executable script in code of a file that runsinvoice/run.py:1High confidence
- Executable script in code of a file that runsjson-csv/run.py:1High confidence
- Executable script in code of a file that runspptx/run.py:1High confidence
- Network access in code of a file that runspptx/run.py:44High confidence
- Network access in code of a file that runspptx/run.py:45High confidence
- Network access in code of a file that runspptx/run.py:46High confidence
- Network access in code of a file that runspptx/run.py:47High confidence
- Network access in code of a file that runspptx/run.py:51High confidence
- Network access in code of a file that runspptx/run.py:52High confidence
and 58 more
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Compatible | Standard SKILL.md skills/bundled/calendar-event/SKILL.md | .claude/skills/<skill-name>/ |
| Codex | Native | Manifest AGENTS.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md skills/bundled/calendar-event/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md skills/bundled/calendar-event/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md skills/bundled/calendar-event/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md skills/bundled/calendar-event/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.