Agent skill

Juejin Publish

by bifrost-proxy in bifrost-proxy/bifrost

Publish Markdown articles and Bifrost capability series to Juejin, or verify with Microsoft Edge that a published Juejin page's title and body match the local Markdown.

MITAuto-check passedBackend & APIs

Install Juejin Publish

skills CLI
$ npx skills add bifrost-proxy/bifrost --skill juejin-publish -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install bifrost-proxy/bifrost juejin-publish --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/bifrost-proxy/bifrost.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/juejin-publish .claude/skills/juejin-publish && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
juejin-publish
GitHub stars
160
Token cost
~1.7k tokens
SKILL.md length
780 words
Files
10 (incl. scripts, references)
Skills in repo
9
Repo updated
First seen
Licence
MIT

At a glance

Publish Markdown articles and Bifrost capability series to Juejin, or verify with Microsoft Edge that a published Juejin page's title and body match the local Markdown.

  • Works in 5 steps: Find the newest Juejin request with… → Read Cookie and x-secsdk-csrf-token… → Verify authentication against the Juejin… → …
  • The user asks to create
  • SKILL.md covers Prepare the article, Preview, Save a draft or publish and Verify the published page with…, plus 3 more sections
  • Runs JavaScript scripts from its folder; calls node and python3; reaches api.juejin.cn

What it does

Juejin Publish is an agent skill from bifrost-proxy/bifrost. Publish Markdown articles and Bifrost capability series to Juejin, or verify with Microsoft Edge that a published Juejin page's title and body match the local Markdown. Use when the user asks to create, save, publish, or验收 a 掘金/Juejin article, automate future Bifrost article releases, reuse authentication from Bifrost traffic, recover an expired/missing Juejin Cookie, or compare a live post with its source.

Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 12 other files, including scripts and reference files (for example `agents/openai.yaml`, `references/article.template.md` and `references/traffic-contract.md`).

It sits in Backend & APIs. The repository describes itself as: Bifrost 是一个用 Rust 编写的高性能、AI 友好的代理服务器,它提供强大的请求拦截、修改和规则配置能力,支持 TLS 解密、脚本扩展等高级功能,支持强大的模糊搜索,支持导入导出分享,支持一键重放请求,支持Coding Agent 自主管理。提供类似 postman 的请求管理和验证能力,无缝和代理能力集成。 The licence is MIT.

When your agent uses it

  • The user asks to create
  • Or验收 a 掘金/Juejin article
  • Automate future Bifrost article releases
  • Reuse authentication from Bifrost traffic

Example prompts

  • “/juejin-publish”

Requirements

  • Python 3
  • Node.js

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Find the newest Juejin request with bifrost search.
  2. Read Cookie and x-secsdk-csrf-token locally with bifrost traffic get.
  3. Verify authentication against the Juejin user endpoint.
  4. Create or reuse a draft, update all metadata/content, then publish.
  5. Save only draft/article IDs and a content hash to the local state file.

What it can do on your machine

Read from SKILL.md and the folder at commit e8ed138. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 6 files in scripts/ (JavaScript), which the agent can run.

    Shell commands in SKILL.md call:

    • node
    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • api.juejin.cn

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Juejin Publish loads about 1.7k tokens when it runs, and up to ~2.2k if it reads all its reference files. Until then it costs about 106 tokens; SKILL.md has 780 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~106
When it runs · the whole SKILL.md, loaded when a task matches
~1.7k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~2.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from bifrost-proxy/bifrost at commit e8ed138, republished under its MIT licence (© bifrost-proxy). 780 words, ~1,697 tokens.

Download SKILL.mdSave it as .claude/skills/juejin-publish/SKILL.md (or your agent's skills folder). This skill also uses 9 other files; get the full folder from GitHub.
name
juejin-publish
description
Publish Markdown articles and Bifrost capability series to Juejin, or verify with Microsoft Edge that a published Juejin page's title and body match the local Markdown. Use when the user asks to create, save, publish, or验收 a 掘金/Juejin article, automate future Bifrost article releases, reuse authentication from Bifrost traffic, recover an expired/missing Juejin Cookie, or compare a live post with its source.

Juejin Publish

Use the bundled script for deterministic publishing. Never paste Cookie, CSRF tokens, raw request headers, or unredacted Bifrost traffic into chat, logs, source files, or article content.

Prepare the article

Copy article.template.md and fill the frontmatter:

  • Require title, nonzero category_id, and at least one numeric tag_ids entry.
  • Keep brief_content at 100 characters or fewer; omit it to derive a summary.
  • Use JSON arrays for tag_ids, column_ids, theme_ids, and pics.
  • Start with the introduction or an H2 section; do not repeat the frontmatter title as the first Markdown H1 because Juejin renders its own article heading.
  • Keep one source file per intended Juejin article. The script recognizes both the source path and content hash after publication to prevent duplicates if a file is moved or copied.

Read traffic-contract.md only when debugging an API or authentication change.

Preview

Always preview before a live write:

bash
.agents/skills/juejin-publish/scripts/juejin-publish \
  --article /absolute/path/to/article.md \
  --dry-run

Check the title, category, tags, action, and word counts in the JSON output. The dry run does not access Bifrost or Juejin.

Use the read-only authentication check when diagnosing the captured session:

bash
.agents/skills/juejin-publish/scripts/juejin-publish --check-auth

It reports only the source request ID and Cookie names, never credential values.

Save a draft or publish

Use --draft-only when the user asks for a draft. Use --publish only when the user explicitly asks to publish:

bash
# Save or update a draft
.agents/skills/juejin-publish/scripts/juejin-publish \
  --article /absolute/path/to/article.md \
  --draft-only

# Publish
.agents/skills/juejin-publish/scripts/juejin-publish \
  --article /absolute/path/to/article.md \
  --publish

The script performs the observed sequence:

  1. Find the newest Juejin request with bifrost search.
  2. Read Cookie and x-secsdk-csrf-token locally with bifrost traffic get.
  3. Verify authentication against the Juejin user endpoint.
  4. Create or reuse a draft, update all metadata/content, then publish.
  5. Save only draft/article IDs and a content hash to the local state file.

Report the returned article URL. Treat already_published as a successful duplicate-prevention result.

Verify the published page with Edge

After publishing or updating an article, pass only its numeric article ID to confirm that Edge can load the rendered title and body:

bash
.agents/skills/juejin-publish/scripts/juejin-verify 1234567890

The verifier launches installed Microsoft Edge, navigates exactly once, waits for the rendered article title and body, keeps the loaded window visible for 5 seconds, then closes Edge and exits 0 with status=loaded, the HTTP status, title, body character count, navigation_count=1, and close_delay_ms=5000.

To additionally compare the live title/body with the source Markdown, pass --article:

bash
.agents/skills/juejin-publish/scripts/juejin-verify 1234567890 \
  --article /absolute/path/to/article.md

Strict comparison normalizes Markdown/rendered list syntax and requires an exact text match. It also rejects an unexpected duplicate title at the start of the body. A match returns status=verified; any mismatch exits 1 with the first differing text window.

This verification path never reads Bifrost traffic, captures Cookie values, or replays requests. It loads the page once by default and reloads only when --refresh [N] is explicitly supplied. Use --headless only for automated tests; the default opens a visible Edge window. Use --close-delay-ms 0 only in automated tests that do not need the visible stability window.

For a bounded reload test followed by one final content check, pass a refresh count. Omitting the count defaults to one refresh:

Show full SKILL.md (295 more words)Show less
bash
.agents/skills/juejin-publish/scripts/juejin-verify 1234567890 --refresh
.agents/skills/juejin-publish/scripts/juejin-verify 1234567890 --refresh 3

The verifier waits 3 seconds before each requested reload and prints progress for every reload. It does not inspect article content between reloads. After all reloads finish, it checks the final page once for a non-empty title and body; when --article is supplied, that final snapshot is also compared with the local Markdown. refresh.complete=true and one entry per reload in refresh.attempts confirm that every requested reload completed. A navigation or HTTP failure stops the run because the page can no longer be checked. Use --refresh-delay-ms to tune the interval. The refresh count is intentionally bounded to 1–1000 to prevent accidental high-volume traffic.

If no usable capture exists or Juejin rejects it, allow the default recovery flow. The script runs bifrost capture wait --open, opens the Juejin editor in the system browser, waits for the user to log in, extracts the new request locally, validates it, and resumes the interrupted operation.

Use --no-browser only for CI or when the user forbids browser interaction. Do not create a separate Cookie file and do not manually copy Cookie values from traffic.

Safety and retry rules

  • Do not use --force-new unless the user explicitly wants a second article from the same source file.
  • Do not retry non-auth API errors as authentication failures.
  • On an auth failure during create/update/publish, refresh once and retry only the failed operation.
  • The script rejects conflicting publication modes and persists a newly created draft ID before update, so a transient update failure can resume without creating another draft.
  • Keep the default state file under the user's local state directory; it contains no credentials.
  • Use JUEJIN_PUBLISH_STATE_FILE or --state-file only for isolation/testing.
  • JUEJIN_API_BASE and --api-base accept only https://api.juejin.cn or a loopback mock endpoint, preventing credentials from being sent to another host.

Validate the skill

bash
node --test .agents/skills/juejin-publish/scripts/*.test.mjs
python3 /Users/eden/.codex/skills/.system/skill-creator/scripts/quick_validate.py \
  .agents/skills/juejin-publish

© bifrost-proxy, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 9 other files (scripts, references) in .agents/skills/juejin-publish of bifrost-proxy/bifrost.

  • SKILL.md
  • agents/openai.yaml
  • references/article.template.md
  • references/traffic-contract.md
  • scripts/juejin-publish
  • scripts/juejin-publish.mjs
  • scripts/juejin-publish.test.mjs
  • scripts/juejin-verify
  • scripts/juejin-verify.mjs
  • scripts/juejin-verify.test.mjs

Open the folder on GitHubat commit e8ed138

Compare with similar skills

Juejin Publish next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Juejin Publish compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Juejin Publish this skillbifrost-proxy/bifrost160—~1.7kAutomated safety check: PassMIT
Raccoon PptSenseTime-Copilot/raccoon-ppt-skill149—~1.5kAutomated safety check: PassApache-2.0
API Design Safetydoccker/cc-use-exp1.1k—~2.6kAutomated safety check: PassCustom licence
Latchkeyimbue-ai/latchkey130—~1.3kAutomated safety check: PassMIT
Mica Ppocr Custom Parserlets-mica/mica-ppocr110—~3.1kAutomated safety check: PassApache-2.0
Elasticsearch File Ingestaspectrr/deer405—~684Automated safety check: PassMIT

Similar skills

  • Raccoon Ppt

    SenseTime-Copilot/raccoon-ppt-skill

    Raccoon (小浣熊) PPT generation skill powered by the PPT OpenAPI.

    149 GitHub stars~1.5k tokensUpdated 2 mo ago
    Backend & APIsAuto-check passed
  • API Design Safety

    doccker/cc-use-exp

    当设计或修改 REST API 响应结构、处理 API 返回值,或生成 Excel/CSV/PDF/对账文件等下游产物时触发。防止 API 设计缺陷导致的字段错位、类型歧义,以及生成产物时关键字段缺失但静默成功的问题。

    1.1k GitHub stars~2.6k tokensUpdated 1 mo ago
    Backend & APIsAuto-check passed
  • Latchkey

    imbue-ai/latchkey

    Interact with third-party or self-hosted services (Slack, Google Workspace, Dropbox, GitHub, Linear, Coolify...) using their HTTP APIs on the user's behalf.

    130 GitHub stars~1.3k tokensUpdated today
    Backend & APIsAuto-check passed
  • Mica Ppocr Custom Parser

    lets-mica/mica-ppocr

    在 mica-ppocr 项目中新增自定义结构化解析器(证件 / 票据 / 卡证 OCR → 业务字段)时加载本 skill。

    110 GitHub stars~3.1k tokensUpdated yesterday
    Backend & APIsAuto-check passed
  • Ingest and transform data files (CSV/JSON/Parquet/Arrow IPC) into Elasticsearch with stream processing and custom transforms.

    405 GitHub stars~684 tokensUpdated 5 mo ago
    Backend & APIsAuto-check passed
  • Guides

    micronaut-projects/micronaut-openapi

    Create or update standalone Micronaut Guides in micronaut-projects/micronaut-guides, including topic discovery, guide authoring, validation, PDF export, and pull request handoff.

    114 GitHub stars~1.9k tokensUpdated 2 days ago
    Backend & APIsAuto-check: notes

More from bifrost-proxy/bifrost

All 9 skills in this repo
  • Site Cookie Login

    bifrost-proxy/bifrost

    Open a target website, wait for user login, verify login with required cookies plus an HTTP probe, and save cookies into .env for later automation.

    160 GitHub stars~600 tokensUpdated yesterday
    Auto-check: notes
  • Zhihu Publish

    bifrost-proxy/bifrost

    Publish Markdown articles to Zhihu Columns through authentication context recovered locally from Bifrost traffic and a built-in publish payload schema, save drafts, prevent duplicate posts, and…

    160 GitHub stars~1.5k tokensUpdated yesterday
    Auto-check passed
  • Codex Task Inspector

    bifrost-proxy/bifrost

    Inspect Codex async task progress from the correct data directory.

    160 GitHub stars~1.3k tokensUpdated yesterday
    Auto-check passed
  • E2E Verify

    bifrost-proxy/bifrost

    面向 Bifrost 管理端的端到端 UI 与 API 验证工具. An agent skill from bifrost-proxy/bifrost.

    160 GitHub stars~730 tokensUpdated yesterday
    Auto-check passed
  • GitHub Actions Pat

    bifrost-proxy/bifrost

    用 Personal Access Token 通过 GitHub REST API 分析 Actions CI 的失败 run/job/step、拉取日志、轮询运行状态、做 PR code review,并驱动 fix → push → watch → iterate 的闭环。Token 只从 GITHUBTOKEN 环境变量读取,不落盘、不回显。适合在 bifrost remote /…

    160 GitHub stars~2k tokensUpdated yesterday
    Auto-check passed
  • Design Md

    bifrost-proxy/bifrost

    A skill your agent uses when changing Bifrost WebUI, desktop shell UI, public site, docs visual style, interaction patterns, layout, copy density, colors, typography, spacing, or component styling.

    160 GitHub stars~544 tokensUpdated yesterday
    Auto-check passed

Questions about Juejin Publish

What does Juejin Publish do?

Publish Markdown articles and Bifrost capability series to Juejin, or verify with Microsoft Edge that a published Juejin page's title and body match the local Markdown. Juejin Publish is an agent skill from bifrost-proxy/bifrost. Publish Markdown articles and Bifrost capability series to Juejin, or verify with Microsoft Edge that a published Juejin page's title and body match the local Markdown.

When should I use Juejin Publish?

Juejin Publish fits situations like: the user asks to create; or验收 a 掘金/Juejin article; automate future Bifrost article releases; reuse authentication from Bifrost traffic.

How do I install Juejin Publish in Claude Code?

Run `npx skills add bifrost-proxy/bifrost --skill juejin-publish -a claude-code`. Or copy the skill folder (.agents/skills/juejin-publish in bifrost-proxy/bifrost) into .claude/skills/juejin-publish in your project. Claude Code loads it when a task matches its description.

How do I install Juejin Publish in Codex?

Run `npx skills add bifrost-proxy/bifrost --skill juejin-publish -a codex`. Or copy the skill folder (.agents/skills/juejin-publish in bifrost-proxy/bifrost) into .agents/skills/juejin-publish in your project. Codex loads it when a task matches its description.

Can I use Juejin Publish in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add bifrost-proxy/bifrost --skill juejin-publish -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/juejin-publish, .gemini/skills/juejin-publish, .github/skills/juejin-publish and .opencode/skills/juejin-publish in your project.

What does Juejin Publish need to run?

Going by SKILL.md and its folder, Juejin Publish needs JavaScript for the scripts in its folder and the command-line tools its instructions call (node and python3). Our summary lists: Python 3; Node.js.

Does Juejin Publish access the network?

SKILL.md names 1 domain. In commands or code: api.juejin.cn; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Juejin Publish safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Juejin Publish use?

Juejin Publish is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Juejin Publish use?

About 1.7k tokens (SKILL.md is roughly 6.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 531 tokens, read only when the agent opens those files.

What are the alternatives to Juejin Publish?

Skills that share tags, products or a category with Juejin Publish: Raccoon Ppt (SenseTime-Copilot/raccoon-ppt-skill, 149 stars), API Design Safety (doccker/cc-use-exp, 1.1k stars), Latchkey (imbue-ai/latchkey, 130 stars) and Mica Ppocr Custom Parser (lets-mica/mica-ppocr, 110 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Juejin Publish?

bifrost-proxy (a GitHub user) maintains it in bifrost-proxy/bifrost, which has 160 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on October 8, 2026.

Source: bifrost-proxy/bifrost on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.