Agent skill · Audited from source
postiz
skill · gitroomhq/postiz-agentNOASSERTION licenceAudited 19 Oct 2026 · source 9d48a52c87ab
Is it safe? No — BLOCK, grade D (69/100). We read this skill's source at commit 9d48a52c87ab and observed network and shell access and no hard-coded secrets. The audit raised 9 findings, 3 critical or high. What it does: Postiz is a tool to schedule social media and chat posts to 28+ channels X, LinkedIn, LinkedIn Page, Reddit, Instagram, Facebook Page, Threads, YouTube, Google My Business, TikTok, Pinterest, Dribbble, Discord, Slack,…
Cite
Cite this page
ModelsAtlas. “postiz (gitroomhq/postiz-agent)”. Retrieved 19 Oct 2026. https://modelsatlas.com/skills/gitroomhq/postiz-agent
Blocked. The page stays public so you can check this skill if someone recommended it to you. The audit found 3 critical or high findings, starting with “Code injection” in src/commands/auth.ts:48. Do not install it without reading them.
3 skills are called “postiz”. You are viewing gitroomhq/postiz-agent. 1 of them is BLOCK.
- gitroomhq/postiz-agent★ 524✕BLOCK
- LeoYeAI/openclaw-master-skills★ 2.2k✓SAFE
- gitroomhq/postiz-agent★ 531✓SAFE
Trust audit
Audit 0.4.1 · source read 19 Oct 2026
BLOCK means the audit found something that could harm you or your machine. Grade D is shared by 721 of 17,602 audited skills.
What the source does
- FilesystemNone observedNo reads or writes in the source
- NetworkDeclared5 observations
- ShellDeclared3 observations
- DependenciesNot pinnedSome versions float
- SecretsNone foundNo keys in source
Five audit layers
| Layer | What we check | Result | Findings |
|---|---|---|---|
L0 Provenance | Repo owner, licence, archive status, activity | PASS | 0 |
L1 Static source | Secrets, path traversal, supply chain, hidden code | FAIL | 6 |
L2 Instructions | Prompt injection, authority framing, hidden directives | PASS | 3 |
L3 Inventory | The files and declarations match the source | PASS | 0 |
L4 Sandbox | Run in isolation and watch behaviour | SKIPPED why | 0 |
Gates applied: no behavioural pass.
Findings (9)
HIGHCode injectioncode.eval_exec · src/commands/auth.ts:48
exec(`open "${url}"`);- Why
- evaluates text as code
- Fix
- remove; use a parser or a dispatch table
HIGHCode injectioncode.eval_exec · src/commands/auth.ts:50
exec(`start "" "${url}"`);- Why
- evaluates text as code
- Fix
- remove; use a parser or a dispatch table
HIGHCode injectioncode.eval_exec · src/commands/auth.ts:52
exec(`xdg-open "${url}"`);- Why
- evaluates text as code
- Fix
- remove; use a parser or a dispatch table
MEDIUMInformation disclosuredisclose.log_secret · src/commands/auth.ts:180
console.log(`🔑 Token: ${creds.accessToken.substring(0, 8)}...`);- Why
- No further detail recorded for this rule.
- Fix
- —
LOWSupply chainsupply.unpinned · package.json
@types/pg, node-fetch, yargs, @types/node, @types/yargs, tsup, typescript
- Why
- 7 dependency range(s) float
- Fix
- pin exact versions or ship a lockfile
LOWSupply chainsupply.unpinned · server/package.json
node-fetch, pg, @types/node, @types/pg, tsx, typescript
- Why
- 6 dependency range(s) float
- Fix
- pin exact versions or ship a lockfile
INFOPrompt injectionprompt.credential_read · plugins/dsh-postiz/README.md:81
| `apiKeyEnv` | `POSTIZ_API_KEY` | Environment variable read at boot for the API key. |
- Why
- asks the agent to read credentials
- Fix
- —
INFOPrompt injectionprompt.persistence · HOW_TO_RUN.md:234
# Add to ~/.bashrc or ~/.zshrc
- Why
- instructs the agent to persist itself in the user's environment
- Fix
- —
INFOPrompt injectionprompt.persistence · QUICK_START.md:251
3. Add to PATH: `export PATH=$PATH:/path/to/apps/cli/dist`
- Why
- instructs the agent to persist itself in the user's environment
- Fix
- —
Audit 0.4.1 · source sha 9d48a52c87ab · 19 Oct 2026Report an issue or request a re-scan
Provenance
Who published it, and what the verdict is pinned to
- Publishergitroomhq GitHub organizationOwner of the repository this skill is read from
- Source foldergitroomhq/postiz-agentThe exact folder we audited
- LicenceNOASSERTIONAs the repository states it
- Commit pinned for this verdict9d48a52c87abA new audit runs when the source changes
- Repository statusNot archivedLast push 4 days ago
- Sandboxed runNot runSkills are read, not executed; layer L4 is skipped
What it tells the agent
Full source on GitHub ↗Its description: Postiz is a tool to schedule social media and chat posts to 28+ channels X, LinkedIn, LinkedIn Page, Reddit, Instagram, Facebook Page, Threads, YouTube, Google My Business, TikTok, Pinterest, Dribbble, Discord, Slack,…
---
name: postiz
description: Postiz is a tool to schedule social media and chat posts to 28+ channels X, LinkedIn, LinkedIn Page, Reddit, Instagram, Facebook Page, Threads, YouTube, Google My Business, TikTok, Pinterest, Dribbble, Discord, Slack, Kick, Twitch, Mastodon, Bluesky, Lemmy, Farcaster, Telegram, Nostr, VK, Medium, Dev.to, Hashnode, WordPress, ListMonk
homepage: https://docs.postiz.com/public-api/introduction
metadata: {"openclaw":{"emoji":"🌎","requires":{"bins":[],"env":["POSTIZ_API_URL"]}}}
---
## Install Postiz if it doesn't exist
```bash
npm install -g postiz
# or
pnpm install -g postiz
```
npm release: https://www.npmjs.com/package/postiz
postiz github: https://github.com/gitroomhq/postiz-app
postiz cli github: https://github.com/gitroomhq/postiz-app
official website: https://postiz.com
---
| Property | Value |
|----------|-------|
| **name** | postiz |
| **description** | Social media automation CLI and MCP server for scheduling posts across 28+ platforms including X, LinkedIn, LinkedIn Pages, Instagram, Facebook, Threads, YouTube, TikTok, Reddit, Pinterest, Bluesky, Mastodon, Google My Business, Discord, Slack, Telegram, Twitch, Kick, Lemmy, Farcaster, Nostr, VK, MeWe, Tumblr, Skool, Whop, Moltbook, Dribbble, Medium, Dev.to, Hashnode, WordPress, and ListMonk |
| **allowed-tools** | Bash(postiz:*) |
---
## ⚠️ Four Hard Rules (Read First)
**Rule 1 — Authenticate before anything.** All commands fail without valid credentials.
**Rule 2 — Every file passed to `-m` (or to `image`/media fields in JSON mode) MUST first go through `postiz upload`.** Raw filesystem paths (`image.jpg`, `video.mp4`) and external URLs (`https://example.com/...`) are **NOT** accepted by the publishing pipeline. TikTok, Instagram, YouTube, and most other providers reject anything that isn't a Postiz-verified URL. Always:
```bash
RESULT=$(postiz upload <file>)
URL=$(echo "$RESULT" | jq -r '.path')
postiz posts:create ... -m "$URL" ...
```
If you see `-m "something.jpg"` anywhere below, treat it as shorthand for "the `.path` you got back from `postiz upload something.jpg`" — never a raw local file.
A file that was already uploaded does not need uploading again: find it with `postiz media:list -s <name>` and reuse its `.path`.
**Rule 3 — When posting to TikTok, `content_posting_method` MUST be `"DIRECT_POST"`** unless the user has explicitly asked to finish the post inside the TikTok app. `"UPLOAD"` does not publish — it drops the media into the account's TikTok inbox to be completed manually within 24 hours, while the Postiz API still reports success. A user saying "upload this video to TikTok" means `"DIRECT_POST"`.
**Rule 4 — Fetch `postiz integrations:settings <id>` before scheduling and honor the returned `rules` and per-field `description`s.** They state which settings apply and when. A setting that doesn't apply (wrong posting method, wrong media type, etc.) is **silently discarded**, not rejected — the post still reports success, so this is your only chance to catch it.
---
## ⚠️ Authentication Required
**You MUST authenticate before running any Postiz CLI command.** All commands will fail without valid credentials.
Before doing anything else, check auth status:
```bash
postiz auth:status
```
If not authenticated, either:
1. **OAuth2:** `postiz auth:login`
2. **API Key:** `export POSTIZ_API_KEY=your_api_key`
**Do NOT proceed with any other commands until authentication is confirmed.**
---
## Core Workflow
The fundamental pattern for using Postiz CLI:
1. **Authenticate** - Verify or set up authentication (see above)
2. **Discover** - List integrations and get their settings
3. **Fetch** - Use integration tools to retrieve dynamic data (flairs, playlists, companies)
4. **Prepare** - Upload media files if needed (or reuse an existing `.path` from `media:list`)
5. **Post** - Create posts with content, media, and platform-specific settings
6. **Analyze** - Track performance with platform and post-level analytics
7. **Resolve** - If analytics returns `{"missing": true}`, run `posts:missing` to list provider content, then `posts:connect` to link it
```bash
# 1. Authenticate
postiz auth:status
# If not authenticated: postiz auth:login --client-id <id> --client-secret <secret>
# 2. Discover
postiz integrations:list
postiz integrations:settings <integration-id>
# 3. Fetch (if needed)
postiz integrations:trigger <integration-id> <method> -d '{"key":"value"}'
# 4. Prepare
postiz upload image.jpg
postiz media:list -s image # or reuse an already-uploaded file
# 5. Post
postiz posts:create -c "Content" -m "image.jpg" -i "<integration-id>"
# 6. Analyze
postiz analytics:platform <integration-id> -d 30
postiz analytics:post <post-id> -d 7
# 7. Resolve (if analytics returns {"missing": true})
postiz posts:missing <post-id>
postiz posts:connect <post-id> --release-id "<content-id>"
```
---
## Essential Commands
### Authentication
**Option 1: OAuth2 (Recommended)**
```bash
# Login via device flow (opens browser, no client ID/secret needed)
postiz auth:login
# Check auth status (verifies credentials are still valid)
postiz auth:status
# Logout (remove stored credentials)
postiz auth:logout
```
Credentials are stored in `~/.postiz/credentials.json`. OAuth2 credentials take priority over API key.
**Option 2: API Key**
```bash
export POSTIZ_API_KEY=your_api_key_here
```
**Optional custom API URL:**
```bash
export POSTIZ_API_URL=https://custom-api-url.com
```
### Integration Discovery
```bash
# List all connected integrations
postiz integrations:list
# List integrations belonging to a specific group (customer)
postiz integrations:list --group <group-id>
# List all groups (customers) as {id, name}
postiz integrations:groups
# Get settings schema for specific integration
postiz integrations:settings <integration-id>
# Trigger integration tool to fetch dynamic data
postiz integrations:trigger <integration-id> <method-name>
postiz integrations:trigger <integration-id> <method-naExcerpt, first 6,001 characters of SKILL.md, verbatim from the audited commit. It is text from someone else’s repository, quoted so you can judge it before your agent reads it.
Install
Pinned to the audited commit 9d48a52
npm install -g postiz npm install postiz npm install -g agent-postiz
git clone https://github.com/gitroomhq/postiz-agent git -C postiz-agent checkout 9d48a52c87ab
Commands as the repository documents them: shown, never run by us. Our verdict covers commit 9d48a52c87ab only.
Works in which agents?
What its own text says, not a test
| Agent | Status | More |
|---|---|---|
| Claude Code | Mentioned in its text, not tested | Skills for Claude Code · About Claude Code |
| Codex | Mentioned in its text, not tested | Skills for Codex · About Codex |
| Cursor | Mentioned in its text, not tested | Skills for Cursor · About Cursor |
| Gemini CLI | Mentioned in its text, not tested | Skills for Gemini CLI · About Gemini CLI |
| OpenClaw | Mentioned in its text, not tested | Skills for OpenClaw · About OpenClaw |
Audit history
Every audit, every source change
- ✕BLOCK D 69 / 100
first audit · source
9d48a52c87ab
Similar skills
gitroomhq/postiz-agent
Postiz is a tool to schedule social media and chat posts to 28+ channels X, LinkedIn, LinkedIn Page, Reddit, Instagram, Facebook Page, Threads, YouTube, Google My Business, TikTok, Pinterest, Dribbble, Discord, Slack,…
lingfengqaq/webnovel-writer
产出可发布章节,完整执行上下文→起草→审查→润色→提交→备份。
lingfengqaq/webnovel-writer
使用审查 Agent 评估章节质量,生成报告并写回审查指标。
lingfengqaq/webnovel-writer
查询项目设定、角色、力量体系、势力、伏笔等信息。支持紧急度分析与金手指状态查询。
lingfengqaq/webnovel-writer
基于总纲生成卷纲、时间线和章纲,并把新增设定增量写回现有设定集。
lingfengqaq/webnovel-writer
从当前会话提取成功写作模式并写入 project_memory.json
Questions about postiz
What does the postiz skill do?
Is postiz safe to install?
What can postiz access on my machine?
Which assistants does postiz work with?
How current is this page?
Sources
- github.com/gitroomhq/postiz-agent — the audited source at commit 9d48a52c87ab and every finding aboveObserved · 19 Oct 2026
Spotted something wrong? Report a correction · Methodology
Keep going in your AI
Opens with this page as the source. We add nothing else to the prompt.
- What does the postiz skill do?
- Is postiz safe to install?
- What can postiz access on my machine?