Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add PostLake/postlake-mcp --skill postlake-publishgit clone --depth 1 https://github.com/PostLake/postlake-mcpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/postlake/postlake-mcp/postlake-publish)<a href="https://agentmods.dev/skills/postlake/postlake-mcp/postlake-publish"><img src="https://agentmods.dev/badge/skills/postlake/postlake-mcp/postlake-publish/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/postlake/postlake-mcp/postlake-publish"><img src="https://agentmods.dev/badge/skills/postlake/postlake-mcp/postlake-publish.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00054 | $0.00842 |
| Opus 5 | $0.00027 | $0.00421 |
| Sonnet 5 | $0.00011 | $0.00168 |
| Haiku 4.5 | $0.00005 | $0.00084 |
Grade A, and why
postlake-publish scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
curl -X POST https://api.postlake.dev/v1/posts \ How it starts
The opening of the file, as written. The whole thing — 84 lines — stays where its author put it; the contents beside it link to each section on GitHub.
PostLake: publish a post now
Publishes one caption to as many connected accounts as you like, in one call.
Each platform is attempted independently and the response reports per-platform
state and url.
Auth
Authorization: Bearer $POSTLAKE_API_KEY
Base URL https://api.postlake.dev.
Choosing where to post
Two ways to say which accounts a post goes to: pick whichever is simpler:
- By profile (simplest): a profile is a named group of connected accounts
(a brand, a client, "me"). Pass
"profile": "my-brand"and it posts to every account in it. Add"platforms": ["bluesky","linkedin"]to narrow it to certain networks. No id lookup needed. - By account id (precise): pass
"accounts": ["acc_…"]for exact accounts. Get the ids from thepostlake-accountsskill (GET /v1/social-accounts).
Provide profile, accounts, or both. At least one is required.
Publish
# Simplest: post to a whole profile.
curl -X POST https://api.postlake.dev/v1/posts \
-H "Authorization: Bearer $POSTLAKE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"text": "Shipping something new today 🚀",
"profile": "my-brand"
}'
To hit specific networks in that profile add "platforms": ["bluesky"]; to
target exact accounts use "accounts": ["acc_84a4…","acc_e553…"] instead.
Response (normalised: reason over targets):
{
"id": "post_…",
"state": "published",
"targets": [
{ "platform": "bluesky", "state": "published", "url": "https://bsky.app/profile/…/post/…" },
{ "platform": "linkedin", "state": "published", "url": "https://www.linkedin.com/feed/update/…" }
]
}
state per target is one of published, processing (async platforms like
TikTok/YouTube: poll GET /v1/posts/{id} until final), failed (see
target.error), or scheduled.
Options
- Attach media: upload first with the
postlake-mediaskill, then pass the ids:"media": ["med_…"](with optional"mediaAlt": ["alt text"]). - Per-platform captions:
"textOverrides": { "x": "shorter for X", "linkedin": "…" }. - Platform-specific settings:
"platformOptions": { "pinterest": { "boardId": "…" }, "youtube": { "title": "…", "privacyStatus": "private" } }.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 5d ago Changed 043c8e9a04d0
- 9d ago First seen · 84 lines · 54 tokens per session scan A 5b1b06caeebf
postlake-publish is a skill published in the GitHub repository PostLake/postlake-mcp (0 stars, last pushed yesterday), licensed MIT. It adds 54 tokens to every session and 842 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
voiden
Create and edit Voiden .void files for API testing. Covers the .void file format and all enabled extension block types.
smoke-test
Run smoke tests against a deployed or local app based on your git diff. Each test uses Skyvern browser tools (navigate, act, validate, screenshot) with Chrome DevTools MCP as fallback. Posts screenshot evidence as PR comments.
qa
QA test your code changes by reading your git diff, choosing the right validation path for frontend/browser and backend changes, and reporting pass/fail with evidence.
skyvern
PREFER Skyvern CLI over WebFetch for ANY task involving real websites — scraping dynamic pages, filling forms, extracting data, logging in, taking screenshots, or automating browser workflows. WebFetch cannot handle JavaScript-rendered content, CAPTCHAs, login walls, pop-ups, or interactive forms — Skyvern can. Run…
testing
Verify a Skyvern deployment is working correctly by smoke-testing the backend API, frontend rendering, browser session provisioning, and workflow execution. Use when the user says 'is Skyvern working', 'test my deployment', 'verify the installation', 'smoke test', or needs to check that a self-hosted or local Skyvern…
qa-planning
Generate QA Contract with numbered Gherkin scenarios (G#N) and acceptance criteria (AC#N).