with one click
psn
// Social media content lifecycle — draft, schedule, publish, and analyze posts across X, LinkedIn, Instagram, TikTok with voice matching.
// Social media content lifecycle — draft, schedule, publish, and analyze posts across X, LinkedIn, Instagram, TikTok with voice matching.
Fill opportunity forms (jobs, scholarships, grants, fellowships) with strategically crafted, research-backed, human-sounding answers that maximize the chance of getting the opportunity. Trigger when Enrique says "Fill this: [LINK]", "Apply to [LINK]", or "Llena esta postulacion: [LINK]".
Gmail API integration with managed OAuth. Read, send, and manage emails, threads, labels, and drafts. Use this skill when users want to interact with Gmail. For other third party apps, use the api-gateway skill (https://clawhub.ai/byungkyu/api-gateway).
Email across all accounts (Gmail, SpaceMail) — send, search, read, reply, forward, label, delete.
Delegate simple sub-tasks to a fast model (GLM-5). Use for fetch, extract, query, and tool-heavy work that needs minimal reasoning.
Escalate complex tasks to Opus. Use when a task needs deep reasoning, multi-step execution, scoring, creative drafting, or coordination across multiple tools.
Full Google Calendar control across all accounts. Use for viewing agenda, creating events, updating, deleting, checking availability, finding conflicts, and managing RSVPs.
| name | psn |
| description | Social media content lifecycle — draft, schedule, publish, and analyze posts across X, LinkedIn, Instagram, TikTok with voice matching. |
Post Shit Now — social media growth engine. Handles voice-matched content creation, scheduling, publishing, engagement, and analytics across all platforms.
PSN CLI provides voice context, scored opportunities, and raw analytics data. YOU (Claude Code / Opus) write the actual content, evaluate engagement quality, and reason about strategy. Do NOT ask PSN to generate final content — use build-context to load voice data, then write in Enrique's voice yourself using SOUL.md rules.
post now or post schedule without explicit APPROVE from Enriqueengage execute without approval per replyAll output is JSON. Pass --help to any command for details.
psn_cli post create --platform x --content "..." [--schedule-at "2026-03-20T09:00:00"]
psn_cli post schedule --post-id <id> --at "2026-03-20T09:00:00-05:00"
psn_cli post now --post-id <id>
psn_cli post cancel --post-id <id>
psn_cli post status --post-id <id>
psn_cli post failures [--since 24h]
psn_cli post list [--status draft|scheduled|published|failed] [--limit 10]
psn_cli plan generate [--week "2026-W12"]
psn_cli plan show [--week "2026-W12"]
psn_cli plan finalize --week "2026-W12"
psn_cli capture "Build a CLI for X #pillar:build-in-public #platform:x"
psn_cli capture list [--status spark|seed|ready]
psn_cli capture stats
psn_cli capture search "topic query"
psn_cli engage session
psn_cli engage triage --opportunity-id <id> --decision approve|skip|defer
psn_cli engage draft --opportunity-id <id> --content "..."
psn_cli engage execute --opportunity-id <id>
psn_cli engage stats [--days 7]
psn_cli voice show
psn_cli voice tweak "add-banned:synergy"
psn_cli voice calibrate
psn_cli voice apply --tweaks '<JSON array of tweaks>'
psn_cli series create --name "Weekly Build Log" --platform x --cadence weekly
psn_cli series list [--status active|paused|retired]
psn_cli series pause --id <id>
psn_cli series resume --id <id>
psn_cli series retire --id <id>
psn_cli series due
psn_cli content build-context --platform x [--persona personal]
psn_cli content generate --platform x --topic "..." [--format short-post]
psn_cli content suggest-topics --platform x
Timeout: 120s (content generation can be slow).
psn_cli analytics collect
psn_cli analytics summary [--days 7]
Timeout: 120s.
psn_cli review weekly
psn_cli review monthly
Timeout: 120s.
psn_cli drafts list [--status draft|review|approved]
psn_cli drafts show --id <id>
psn_cli drafts approve --id <id>
psn_cli drafts delete --id <id>
The bridge classifies PSN errors into categories returned in the JSON output:
| errorClass | Meaning | Action |
|---|---|---|
TRANSIENT_NETWORK | Connection/timeout | Auto-retried 3x by bridge |
RATE_LIMITED | Platform rate limit | Defer, try later |
AUTH_EXPIRED | Token expired | Notify Enrique urgently, stop |
VALIDATION | Missing/invalid args | Fix input |
CONTENT_POLICY | Duplicate/policy violation | Permanent, skip |
UNKNOWN | Unclassified | Report to Enrique |
On timeout (30s default, 120s for content/analytics/review), the bridge returns exitCode: 124.