/v2ex
Interact with V2EX (v2ex.com) — browse hot and latest topics, read topic details and replies, search posts, create topics, reply to discussions, thank posts, favorite topics/nodes, follow members, daily check-in. Use this skill whenever the user mentions V2EX, v2ex.com, wants to
$ npx -y skills add sigcli/sigcli --skill v2ex --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/v2ex
Context preview
The summary Claude sees to decide when to auto-load this skill.
Interact with V2EX (v2ex.com) — browse hot and latest topics, read topic details and replies, search posts, create topics, reply to discussions, thank posts, favorite topics/nodes, follow members, daily check-in. Use this skill whenever the user mentions V2EX, v2ex.com, wants to
SKILL.md
v2ex.SKILL.mdname: v2ex
description: 'Interact with V2EX (v2ex.com) — browse hot and latest topics, read topic details and replies, search posts, create topics, reply to discussions, thank posts, favorite topics/nodes, follow members, daily check-in. Use this skill whenever the user mentions V2EX, v2ex.com, wants to browse tech forum topics, read V2EX discussions, search V2EX posts, check V2EX notifications, create or reply to V2EX topics, or look up V2EX users/nodes. Also trigger when the user pastes a V2EX URL (e.g. v2ex.com/t/12345), mentions a V2EX node name, or asks about Chinese tech community discussions. Keywords: V2EX, v2ex, 论坛, 技术社区, 节点, 主题, 回复.'
V2EX
Browse, search, read, and interact with V2EX — the creative workers' community.
Skill Directory
`<SKILL_DIR>` is the directory containing this SKILL.md file. Determine it ONCE at the start and reuse it.
Setup (run FIRST — every time, before any operation)
You MUST complete this setup before running any script. Do NOT skip this step.
sig status v2ex 2>&1
Check the JSON output fields `configured` and `valid`:
- **`configured: false`** → run Provider Setup below. Do NOT proceed without completing it.
- **`valid: false` (but configured: true)** → run `sig login v2ex`, then re-check.
- **`valid: true`** → detect proxy (see below), then execute the user's request.
Provider Setup
1. Read `<SKILL_DIR>/references/provider-config.yaml` 2. Append the provider block to `~/.sig/config.yaml` under `providers:` 3. Ask the user: "Do you need a proxy to access this site?" — if yes, add `networkProxy: <url>` under the provider in config.yaml 4. Run `sig login v2ex` (with `--network-proxy <url>` if proxy was specified) 5. Verify: run `sig status v2ex` again — must show `valid: true` before proceeding
Proxy Detection (after provider is valid)
grep -A15 "^\s*v2ex:" ~/.sig/config.yaml | grep networkProxy | awk '{print $2}'If this outputs a URL, prefix ALL python3 commands with `HTTPS_PROXY=<url> HTTP_PROXY=<url>`. If using socks5, convert to socks5h for python (e.g. `socks5://...` → `socks5h://...`). If empty, no proxy needed.
Running Scripts
All scripts require setup to be completed first (see above).
**Read operations** — use `sig run` to inject cookie (enables authenticated features):
sig run v2ex -- bash -c 'python3 <SKILL_DIR>/scripts/v2ex_hot.py --cookie "$SIG_V2EX_COOKIE"'
**Write operations** — require `sig run` (cookie is mandatory):
sig run v2ex -- bash -c 'python3 <SKILL_DIR>/scripts/v2ex_reply.py --cookie "$SIG_V2EX_COOKIE" --topic-id 12345 --content "Nice post!"'
Env var: `SIG_V2EX_COOKIE`
**On auth error (401/403):** run `sig login v2ex` automatically (no user prompt), then retry.
Scripts Reference
All scripts are in this skill's `scripts/` directory. Run via Bash tool.
Read Operations
| Script | Purpose | Auth | | ----------------------- | ---------------------------------- | -------- | | `v2ex_hot.py` | Hot topics of the day | Optional | | `v2ex_latest.py` | Latest topics | Optional | | `v2ex_topic.py` | Topic detail + replies | Optional | | `v2ex_node.py` | Node info + topics, list nodes | Optional | | `v2ex_member.py` | Member profile + topics | Optional | | `v2ex_search.py` | Full-text search via SOV2EX | None | | `v2ex_notifications.py` | User notifications | Required | | `v2ex_profile.py` | Authenticated user profile/balance | Required |
Write Operations
| Script | Purpose | Auth | | ------------------ | --------------------------------- | -------- | | `v2ex_create.py` | Create a new topic | Required | | `v2ex_reply.py` | Reply to a topic | Required | | `v2ex_thank.py` | Thank a topic or reply | Required | | `v2ex_favorite.py` | Favorite/unfavorite topic or node | Required | | `v2ex_follow.py` | Follow/unfollow/block/unblock | Required | | `v2ex_daily.py` | Daily sign-in reward | Required | | `v2ex_append.py` | Append supplement to own topic | Required |
v2ex_hot.py
--cookie COOKIE V2EX session cookie (optional)
v2ex_latest.py
--cookie COOKIE V2EX session cookie (optional)
v2ex_topic.py
--cookie COOKIE V2EX session cookie (optional)
--id ID Topic ID (required)
--page N Reply page number (default: 1)
v2ex_node.py
--cookie COOKIE V2EX session cookie (optional)
--name NAME Node name (e.g., "python", "apple")
--page N Page number for topic listing (default: 1)
--list-all List all available nodes (flag)
v2ex_member.py
--cookie COOKIE V2EX session cookie (optional)
--username NAME Member username (required)
--include-topics Also fetch member's recent topics (flag)
v2ex_search.py
--query TEXT Search query (required)
--size N Max results (default: 20)
--sort FIELD Sort by: "sumup" (relevance, default) or "created"
--node NAME Filter by node name (optional)
--username NAME Filter by author (optional)
v2ex_notifications.py
--cookie COOKIE V2EX session cookie (required)
--page N Page number (default: 1)
v2ex_profile.py
--cookie COOKIE V2EX session cookie (required)
v2ex_create.py
--cookie COOKIE V2EX session cookie (required)
--node NAME Target node name (required, e.g., "python")
--title TEXT Topic title (required)
--content TEXT Topic body content (required)
--syntax SYNTAX Content syntax: "default" or "markdown" (default: "default")
v2ex_reply.py
--cookie COOKIE V2EX session cookie (required)
Read more
name: v2ex description: 'Interact with V2EX (v2ex.com) — browse hot and latest topics, read topic details and replies, search posts, create topics, reply to discussions, thank posts, favorite topics/nodes, follow members, daily check-in. Use this skill whenever the user mentions V2EX, v2ex.com, wants to browse tech forum topics, read V2EX discussions, search V2EX posts, check V2EX notifications, create or reply to V2EX topics, or look up V2EX users/nodes. Also trigger when the user pastes a V2EX URL (e.g. v2ex.com/t/12345), mentions a V2EX node name, or asks about Chinese tech community discussions. Keywords: V2EX, v2ex, 论坛, 技术社区, 节点, 主题, 回复.'
V2EX
Browse, search, read, and interact with V2EX — the creative workers' community.
Skill Directory
`<SKILL_DIR>` is the directory containing this SKILL.md file. Determine it ONCE at the start and reuse it.
Setup (run FIRST — every time, before any operation)
You MUST complete this setup before running any script. Do NOT skip this step.
sig status v2ex 2>&1
Check the JSON output fields `configured` and `valid`:
- **`configured: false`** → run Provider Setup below. Do NOT proceed without completing it.
- **`valid: false` (but configured: true)** → run `sig login v2ex`, then re-check.
- **`valid: true`** → detect proxy (see below), then execute the user's request.
Provider Setup
1. Read `<SKILL_DIR>/references/provider-config.yaml` 2. Append the provider block to `~/.sig/config.yaml` under `providers:` 3. Ask the user: "Do you need a proxy to access this site?" — if yes, add `networkProxy: <url>` under the provider in config.yaml 4. Run `sig login v2ex` (with `--network-proxy <url>` if proxy was specified) 5. Verify: run `sig status v2ex` again — must show `valid: true` before proceeding
Proxy Detection (after provider is valid)
grep -A15 "^\s*v2ex:" ~/.sig/config.yaml | grep networkProxy | awk '{print $2}'If this outputs a URL, prefix ALL python3 commands with `HTTPS_PROXY=<url> HTTP_PROXY=<url>`. If using socks5, convert to socks5h for python (e.g. `socks5://...` → `socks5h://...`). If empty, no proxy needed.
Running Scripts
All scripts require setup to be completed first (see above).
**Read operations** — use `sig run` to inject cookie (enables authenticated features):
sig run v2ex -- bash -c 'python3 <SKILL_DIR>/scripts/v2ex_hot.py --cookie "$SIG_V2EX_COOKIE"'
**Write operations** — require `sig run` (cookie is mandatory):
sig run v2ex -- bash -c 'python3 <SKILL_DIR>/scripts/v2ex_reply.py --cookie "$SIG_V2EX_COOKIE" --topic-id 12345 --content "Nice post!"'
Env var: `SIG_V2EX_COOKIE`
**On auth error (401/403):** run `sig login v2ex` automatically (no user prompt), then retry.
Scripts Reference
All scripts are in this skill's `scripts/` directory. Run via Bash tool.
Read Operations
| Script | Purpose | Auth | | ----------------------- | ---------------------------------- | -------- | | `v2ex_hot.py` | Hot topics of the day | Optional | | `v2ex_latest.py` | Latest topics | Optional | | `v2ex_topic.py` | Topic detail + replies | Optional | | `v2ex_node.py` | Node info + topics, list nodes | Optional | | `v2ex_member.py` | Member profile + topics | Optional | | `v2ex_search.py` | Full-text search via SOV2EX | None | | `v2ex_notifications.py` | User notifications | Required | | `v2ex_profile.py` | Authenticated user profile/balance | Required |
Write Operations
| Script | Purpose | Auth | | ------------------ | --------------------------------- | -------- | | `v2ex_create.py` | Create a new topic | Required | | `v2ex_reply.py` | Reply to a topic | Required | | `v2ex_thank.py` | Thank a topic or reply | Required | | `v2ex_favorite.py` | Favorite/unfavorite topic or node | Required | | `v2ex_follow.py` | Follow/unfollow/block/unblock | Required | | `v2ex_daily.py` | Daily sign-in reward | Required | | `v2ex_append.py` | Append supplement to own topic | Required |
v2ex_hot.py
--cookie COOKIE V2EX session cookie (optional)
v2ex_latest.py
--cookie COOKIE V2EX session cookie (optional)
v2ex_topic.py
--cookie COOKIE V2EX session cookie (optional) --id ID Topic ID (required) --page N Reply page number (default: 1)
v2ex_node.py
--cookie COOKIE V2EX session cookie (optional) --name NAME Node name (e.g., "python", "apple") --page N Page number for topic listing (default: 1) --list-all List all available nodes (flag)
v2ex_member.py
--cookie COOKIE V2EX session cookie (optional) --username NAME Member username (required) --include-topics Also fetch member's recent topics (flag)
v2ex_search.py
--query TEXT Search query (required) --size N Max results (default: 20) --sort FIELD Sort by: "sumup" (relevance, default) or "created" --node NAME Filter by node name (optional) --username NAME Filter by author (optional)
v2ex_notifications.py
--cookie COOKIE V2EX session cookie (required) --page N Page number (default: 1)
v2ex_profile.py
--cookie COOKIE V2EX session cookie (required)
v2ex_create.py
--cookie COOKIE V2EX session cookie (required) --node NAME Target node name (required, e.g., "python") --title TEXT Topic title (required) --content TEXT Topic body content (required) --syntax SYNTAX Content syntax: "default" or "markdown" (default: "default")
v2ex_reply.py
--cookie COOKIE V2EX session cookie (required)
Sign in your way. AI works on your behalf. AI agents need access to your work systems — Jira, wikis, calendars, internal APIs. But passing credentials through shell history, environment variables, and agent context windows is a security nightmare.

