← Back to Skills Marketplace
jk-archivist

TikTok Packager

by JK-Archivist · GitHub ↗ · v1.6.0
cross-platform ✓ Security Clean
727
Downloads
5
Stars
1
Active Installs
3
Versions
Install in OpenClaw
/install jk-archivist-tiktok-packager
Description
Generate deterministic 6-slide portrait PNG slideshow assets plus caption text for TikTok-style posting workflows, including reusable templates and a strict...
README (SKILL.md)

JK Archivist TikTok Skill

Generate deterministic, text-driven 6-slide portrait slideshow assets for TikTok-style content.

What This Skill Is For

Use this skill when you want:

  • Repeatable 6-slide visual posts without external image generation
  • Consistent dimensions and readable layout for short-form platforms
  • A simple contract: input slide copy -> validated PNG outputs + caption text
  • A base that can later plug into draft upload workflows (for example via Postiz)

Typical use cases:

  • Brand or creator intro slides
  • Educational mini explainers
  • Product update snapshots
  • Story-driven announcement sequences

Quick Start

  1. Install dependencies:
    • python3 -m pip install -r requirements.txt
  2. Optional font override:
    • export TIKTOK_FONT_PATH=/absolute/path/to/font.ttf
  3. Run:
    • node scripts/tiktok-intro-draft.mjs

Custom input modes:

  • Use your own 6-slide copy file:
    • node scripts/tiktok-intro-draft.mjs --spec /absolute/path/to/spec.json
  • Ask the agent to generate copy from a topic:
    • node scripts/tiktok-intro-draft.mjs --topic "your topic"
  • Optional Postiz draft upload:
    • node scripts/tiktok-intro-draft.mjs --postiz

Advanced modes:

  • --template intro|educational|product-update|announcement
  • --style default|high-contrast|clean|midnight
  • --audience beginner|operator|expert
  • --cta-pack follow-focused|link-focused|engagement-focused
  • --hashtag-policy tcg-default|general
  • --locale en|es|fr
  • --ab-test caption-cta|style|template
  • --dry-run (write spec/review only, skip render/upload)
  • --postiz-only (reuse existing rendered slides, upload only)
  • --no-upload (force local-only even with --postiz)
  • --resume-upload (resume partially uploaded runs)
  • --max-retries \x3Cn>
  • --timeout-ms \x3Cn>
  • --verbose

Template options:

  • intro
  • educational
  • product-update
  • announcement

Style options:

  • default
  • high-contrast
  • clean
  • midnight

Audience options:

  • beginner
  • operator
  • expert

CTA pack options:

  • follow-focused
  • link-focused
  • engagement-focused

Hashtag policy options:

  • tcg-default
  • general

Core Output Contract

  • Exactly 6 slides
  • 1024x1536 portrait
  • PNG output format
  • Large readable text with safe margins

Expected layout:

outbox/tiktok/intro/YYYY-MM-DD/
  _slide_spec.json
  _render_metadata.json
  slides/slide_01.png ... slide_06.png
  caption.txt
  review/review.md
  review/contact_sheet.png
  run_log.json
  upload_state.json (optional)
  postiz_response.json (optional)

What Can Be Customized

  • Slide text (any 6-line narrative)
  • Font via TIKTOK_FONT_PATH
  • Caption behavior via template + CTA + hashtags
  • Audience mode and localization
  • A/B variant strategy
  • Optional Postiz upload controls

To customize for your use case, change:

  • The slides array content (via --spec JSON or topic mode)
  • The caption template in src/node/write-caption.mjs
  • Hashtag/CTA policy in src/node/hashtags and src/node/cta
  • Audience adaptation in src/node/audience
  • Optional Postiz env vars if enabling --postiz

Spec format:

{
  "slides": [
    "Slide line 1",
    "Slide line 2",
    "Slide line 3",
    "Slide line 4",
    "Slide line 5",
    "Slide line 6"
  ],
  "caption": "Optional caption override",
  "template": "intro",
  "audience": "operator",
  "ctaPack": "follow-focused",
  "hashtagPolicy": "tcg-default",
  "hashtagOverrides": ["#customtag"],
  "locale": "en",
  "ab_test": {
    "strategy": "caption-cta"
  },
  "style": {
    "preset": "default"
  }
}

Customization Matrix

Need Option
Use your own exact slide copy --spec /path/spec.json
Generate deterministic copy from a topic --topic "your topic"
Use a built-in narrative structure --template educational (or others)
Change visual style --style high-contrast
Adjust reading complexity for target viewers `--audience beginner
Change CTA behavior --cta-pack ...
Apply hashtag policy --hashtag-policy ...
Add custom hashtags --hashtag #customtag (repeatable)
Localize CTA text --locale es
Generate multiple candidates `--ab-test caption-cta
Keep local-only output run without --postiz or add --no-upload
Upload optional draft via Postiz --postiz with required env vars
Resume partial uploads --postiz --resume-upload
Tune network/upload behavior --max-retries N --timeout-ms N
Validate pipeline without rendering/upload --dry-run

Preset: JK Archivist Intro (Exact Contract)

Objective

Generate a deterministic 6-slide TikTok intro slideshow (PNG) + caption and (optionally) upload as a TikTok draft/private post using Postiz. Human publishes manually after selecting trending sound.

Draft/Private Upload Rules (Optional)

  • privacy_level = SELF_ONLY
  • content_posting_method = UPLOAD

Slide Copy (Exact)

  1. The trading card market runs on messy data.
  2. Prices fragment. Condition drifts. Signals lie.
  3. Collectors make real decisions on incomplete info.
  4. JK Index = market intelligence for TCGs.
  5. Truth first. No guessing. Built in public.
  6. Alpha today. Compounding weekly. Brick by brick. 👑🧱

Caption Template (Exact)

TCG prices look certain — until you zoom in. JK Index is building the truth layer: clean IDs, real comps, market signals. Follow if you want collector-first market intelligence. 👑🧱

#pokemon #tcg #cardcollecting #marketdata #startup

Safety / Never Do

  • No token mentions
  • No $
  • No buy/sell language
  • No predictions
  • No copyrighted character art
  • No unverified superlatives (e.g., "guaranteed", "most accurate")

Required/Optional Environment Variables

Required for optional upload mode:

  • POSTIZ_API_KEY
  • POSTIZ_TIKTOK_INTEGRATION_ID

Optional:

  • POSTIZ_BASE_URL (defaults to https://api.postiz.com/public/v1)
  • TIKTOK_FONT_PATH (absolute .ttf path)

References

  • references/setup.md
  • references/spec-schema.md
  • references/renderer-spec.md
  • references/outputs-and-validation.md
  • references/troubleshooting.md
  • references/publish-checklist.md
  • examples/sample-slide-spec.json
Usage Guidance
This bundle appears to do what it says: locally render deterministic 6-slide PNGs, produce caption text, and optionally upload drafts to a Postiz endpoint. Before installing/run: 1) If you plan to use --postiz, only supply POSTIZ_API_KEY and POSTIZ_TIKTOK_INTEGRATION_ID to trusted code/CI — the upload feature will send your images and caption to the configured POSTIZ_BASE_URL. 2) Run with --dry-run first to validate flow without rendering or uploading. 3) Ensure Python Pillow is installed (requirements.txt) and provide a safe absolute TIKTOK_FONT_PATH if you override the font. 4) The repo expects to be executed from its directory root (repoRoot check). 5) If you don't intend to upload anywhere, avoid using --postiz / do not set POSTIZ_* env vars. 6) If you want extra assurance, review the postiz-upload and postiz-create-draft code (they use fetch to POST to POSTIZ_BASE_URL) and, if needed, run the tests (npm test / python tests) locally.
Capability Analysis
Type: OpenClaw Skill Name: jk-archivist-tiktok-packager Version: 1.6.0 The OpenClaw skill bundle is designed to generate TikTok-style slideshows and optionally upload them to the Postiz API. The code and documentation align with this stated purpose. Key indicators of benign intent include the explicit 'Safety / Never Do' section in `SKILL.md` and the `BANNED_PATTERNS` in `src/node/preflight-checks.mjs`, which actively prevent the generation of harmful or misleading content. Network calls to `api.postiz.com` are for the described optional upload feature, requiring API keys via environment variables, which is a secure practice. File system operations are confined to generating output in `outbox/` and reading specified font files. There is no evidence of intentional data exfiltration, unauthorized remote control, persistence, or obfuscation.
Capability Assessment
Purpose & Capability
Name/description (deterministic 6-slide PNG + caption + optional upload) match the repository contents: rendering code (Python Pillow), Node CLI glue, caption/hashtag/CTA logic, and optional Postiz upload modules. Required binaries (node, python3) are reasonable for the described workflow.
Instruction Scope
SKILL.md instructs the agent to run the local CLI (node scripts/tiktok-intro-draft.mjs) and describes optional modes (dry-run, --postiz). Runtime instructions and code perform local reads/writes, rendering, verification, and an optional upload to Postiz; these actions stay within the stated purpose. The skill writes outputs to an outbox/ path and validates files before upload.
Install Mechanism
There is no install spec; the bundle is shipped as a code bundle and runtime expects node + python3 and Python dependency pillow (requirements.txt). All code is present in the repo; nothing is downloaded from arbitrary URLs or installed from untrusted third-party installers.
Credentials
The skill declares no required env vars in registry metadata, but the code supports an optional Postiz integration which, when used, requires POSTIZ_API_KEY and POSTIZ_TIKTOK_INTEGRATION_ID (and optionally POSTIZ_BASE_URL and TIKTOK_FONT_PATH). This is proportionate to the optional upload feature, but callers should be aware these credentials are required only if you enable --postiz; the code will call requireEnv and throw if those vars are missing when upload is attempted.
Persistence & Privilege
always:false and default invocation settings are used. The skill does not request persistent platform-wide privileges, does not modify other skills, and is only privileged to write its own outbox artifacts. Autonomous invocation is allowed (platform default) but not combined with any other concerning flags.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install jk-archivist-tiktok-packager
  3. After installation, invoke the skill by name or use /jk-archivist-tiktok-packager
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.6.0
Version 1.6.0 introduces audience, CTA, hashtag, internationalization, and A/B testing controls, along with pipeline upgrades. - Added support for audience modes, call-to-action (CTA) packs, hashtag policies, and localization options. - New A/B test variant generation via ab_test config. - Expanded core commands: `--audience`, `--cta-pack`, `--hashtag-policy`, `--locale`, `--ab-test`, `--resume-upload`, `--max-retries`, `--timeout-ms`, `--verbose`. - Modularized codebase with new content adaptation, localization, hooks, logging, and variant generation modules. - Output structure now includes review materials, run/upload logs, and more metadata. - Enhanced customization and safer output via policy-driven caption/hashtag controls.
v1.1.0
- Added spec-driven packager workflow with precedence rules (`--spec`, `--topic`, `--template`). - Added style presets and template modes for broader reuse. - Added preflight safety checks and review artifacts (`review.md`, `contact_sheet.png`). - Added optional Postiz hardening (timeouts, retries, idempotency, normalized responses). - Added bundle validation/pack scripts and publish checklist docs.
v1.0.0
- Initial release of jk-archivist-tiktok-packager. - Generates a deterministic 6-slide TikTok intro slideshow (PNG) with exact caption. - Follows strict contract: 1024x1536 portrait PNGs, large readable text, and safe margins. - Includes optional workflow for Postiz draft/private upload - Provides clear output folder structure and strict requirements for content and formatting. - For use in producing short TikTok slideshow content
Metadata
Slug jk-archivist-tiktok-packager
Version 1.6.0
License
All-time Installs 1
Active Installs 1
Total Versions 3
Frequently Asked Questions

What is TikTok Packager?

Generate deterministic 6-slide portrait PNG slideshow assets plus caption text for TikTok-style posting workflows, including reusable templates and a strict... It is an AI Agent Skill for Claude Code / OpenClaw, with 727 downloads so far.

How do I install TikTok Packager?

Run "/install jk-archivist-tiktok-packager" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is TikTok Packager free?

Yes, TikTok Packager is completely free (open-source). You can download, install and use it at no cost.

Which platforms does TikTok Packager support?

TikTok Packager is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created TikTok Packager?

It is built and maintained by JK-Archivist (@jk-archivist); the current version is v1.6.0.

💬 Comments