agentsclimarketplace

Cnblogs

Skill AceDataCloud/Skills/skills/cnblogs

Agent Skills for AceDataCloud AI services — music, image, video generation, web search, and more. Compatible with Claude Code, GitHub Copilot, Gemini CLI, and all agentskills.io-compatible agents.

Install
npx -y skills add AceDataCloud/Skills --skill cnblogs

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 13 stars13 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Publish, update and read CNBlogs (博客园) posts with a personal access token through the API used by the official vscode-cnb client. Use when the user wants to publish Markdown to 博客园, save a CNBlogs draft, edit or delete a post, or list posts or categories.

The file declares its own license as Apache-2.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

3.5 KB, as published. Nobody here has run it

Use the bundled standard-library CLI. The connector injects the user's 博客园 personal access token as $CNBLOGS_TOKEN. Never print it. The CLI follows the current official cnblogs/vscode-cnb client contract at https://write.cnblogs.com/api (Authorization: Bearer plus Authorization-Type: pat).

python3 "$SKILL_DIR/scripts/cnblogs.py" whoami

If authentication fails, ask the user to create a PAT at https://account.cnblogs.com/settings/tokens and reconnect. Do not ask for their account password or Cookie.

Read the blog

# Verify the token and inspect the account's post template.
python3 "$SKILL_DIR/scripts/cnblogs.py" whoami

# Categories and recent posts.
python3 "$SKILL_DIR/scripts/cnblogs.py" categories
python3 "$SKILL_DIR/scripts/cnblogs.py" posts --limit 20
python3 "$SKILL_DIR/scripts/cnblogs.py" post POST_ID

Create a draft or publish

Prepare the complete Markdown in a file. Category values are numeric IDs from the categories command; tags are names.

# First call is always a dry run and does not load credentials or call the API.
python3 "$SKILL_DIR/scripts/cnblogs.py" create \
  --title "标题" --content-file /tmp/article.md \
  --category-ids "123,456" --tags "agent,api"

# Save as a private draft after the user confirms.
python3 "$SKILL_DIR/scripts/cnblogs.py" create \
  --title "标题" --content-file /tmp/article.md \
  --category-ids "123,456" --tags "agent,api" --confirm

# Public publishing additionally requires --publish.
python3 "$SKILL_DIR/scripts/cnblogs.py" create \
  --title "标题" --content-file /tmp/article.md \
  --category-ids "123,456" --tags "agent,api" --publish --confirm

--confirm is valid only as the final argument. Always show the title, categories, tags, visibility and full content to the user before a public publish. Default to a draft unless the user explicitly requests publication.

Update and delete

Updating requires an explicit visibility choice so an existing post is not silently unpublished. All commands below dry-run without trailing --confirm.

python3 "$SKILL_DIR/scripts/cnblogs.py" update POST_ID \
  --title "新标题" --content-file /tmp/article.md --publish --confirm

python3 "$SKILL_DIR/scripts/cnblogs.py" update POST_ID \
  --title "新标题" --content-file /tmp/article.md --draft --confirm

python3 "$SKILL_DIR/scripts/cnblogs.py" delete POST_ID --confirm

Use the real returned post_id, URL, or media URL. Do not retry a timed-out write automatically because its outcome may be unknown; list recent posts or inspect the post first.

Record the output

After a confirmed public publish returns a real URL, call publish_artifact once with kind="article", channel="cnblogs", the title, returned URL, and status="delivered". Do not record drafts or failed/unknown writes.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.