From velog-cli
Manages velog.io developer blog posts from terminal: create/edit/publish Markdown files or stdin as drafts/posts, list personal/drafts/trending/recent, authenticate via browser tokens.
npx claudepluginhub hamsurang/kit --plugin velog-cliThis skill uses the workspace's default tool permissions.
`velog` is a CLI client for [velog.io](https://velog.io), a developer blogging platform.
Create, edit, and publish Bear Blog posts via browser automation. Supports extended Markdown (footnotes, tasks), custom metadata (SEO, tags, dates), and header format.
Generates Markdown blog posts about recent work using git history, project detection, and type-specific templates (quick-update, project-update, retrospective, tutorial, deep-dive) with guided prompts.
Generates technical blog posts on codebase features, analyzing git history, implementations, and challenges with code snippets. Applies anti-AI writing guides for natural tone.
Share bugs, ideas, or general feedback.
velog is a CLI client for velog.io, a developer blogging platform.
It lets you manage blog posts entirely from the terminal — create from markdown files,
edit, publish drafts, browse trending posts, and more.
The velog binary must be installed:
# macOS
brew tap hamsurang/velog-cli && brew install velog-cli
# Cargo (any platform)
cargo install velog-cli
If velog is not found, tell the user to install it first.
Most write operations require authentication. Check status before attempting mutations.
# Check if logged in
velog auth status
# Login (interactive — prompts for tokens from browser DevTools)
velog auth login
# Logout
velog auth logout
How to get tokens: The user opens velog.io in their browser, opens DevTools (F12) →
Application → Cookies, and copies access_token and refresh_token. The CLI prompts
for these during velog auth login.
Credentials are stored at ~/.config/velog-cli/credentials.json and auto-refresh when expired.
# List your own posts (requires auth)
velog post list
# List your drafts
velog post list --drafts
# Trending posts (filterable by period)
velog post list --trending
velog post list --trending --period week
# Recent posts across velog
velog post list --recent
# Posts by a specific user
velog post list -u <username>
# Control result count (1–100, default 20)
velog post list --limit 50
# Pagination
velog post list --recent --cursor <cursor>
velog post list --trending --offset 20
# Show your own post by slug
velog post show <slug>
# Show another user's post
velog post show <slug> -u <username>
The slug is the URL path segment (e.g., my-first-post from velog.io/@user/my-first-post).
# From a markdown file (saved as draft by default)
velog post create -t "Post Title" -f article.md
# From stdin
echo "# Hello World" | velog post create -t "Hello"
# Publish immediately (not draft)
velog post create -t "Title" -f article.md --publish
# With tags and custom slug
velog post create -t "Title" -f article.md --tags "rust,cli,velog" --slug my-custom-slug
# Private post
velog post create -t "Title" -f article.md --publish --private
# Update content from a file
velog post edit <slug> -f updated.md
# Update title
velog post edit <slug> -t "New Title"
# Update tags
velog post edit <slug> --tags "new,tags"
# Update everything
velog post edit <slug> -t "New Title" -f updated.md --tags "new,tags"
velog post publish <slug>
# With confirmation prompt
velog post delete <slug>
# Skip confirmation
velog post delete <slug> -y
All commands accept --format to control output style:
| Format | Use case | Description |
|---|---|---|
pretty | Human reading (default) | Tables, colors, markdown rendering |
compact | AI agents, scripts | Minified JSON on a single line |
silent | CI/CD, exit-code-only checks | Queries emit JSON, mutations emit nothing |
When Claude is running velog commands programmatically, use --format compact to get
structured JSON output that's easy to parse:
velog post list --format compact
velog post show my-post --format compact
velog post create -t "Title" -f article.md --tags "tag1,tag2"velog post publish <slug>velog post list --format compactvelog post edit <slug> -f updated.mdvelog post list --trending --period week --limit 10
# Generate completions
velog completions zsh # or bash, fish, elvish, powershell
velog auth status first. If not logged in, guide
the user through velog auth login.velog post list --format compact.brew or cargo.--format compact when you need to parse the output programmatically.-f. This avoids shell escaping issues with stdin piping.--publish only when the user
explicitly asks to publish immediately.--format silent for mutations when you only care about success/failure
(check exit code).