
Security News
GitHub Actions Adds cache-mode to Limit Cache Poisoning Risk
GitHub Actions now supports cache-mode, a least-privilege control on the Actions cache aimed at the cache poisoning technique behind recent compromises.
@viceme-ai/cli
Advanced tools
Turn local AI Agent Skills into publishable products—from the conversation you already use.
Install the CLI and official Agent Skills together, then ask Codex, Claude Code, or WorkBuddy to do the rest.
简体中文 · Quick Start · Agent Skills · Commands · Security
~/.agents/skills fallback.| Capability | What ViceMe provides |
|---|---|
| Publish a Skill | Validate a local Skill directory or ZIP, set a CNY price, upload it, review platform suggestions, and publish a paid listing. |
| Publish a website | Register and publish a creator website with a stable Website Work identity; verify ownership separately only for commerce, follow, or paid-access features that require it. |
| Add creator access | Add host-native login, follow gates, and independently priced one-time feature access. |
| Add hosted engagement | Branch between danmaku on a published Website Work with an exact canonical Origin, open tips on any eligible published Merchant Work, or both; no engagement route requires DNS ownership verification. |
| Set up an Agent | Install, authenticate, update, diagnose, and repair the CLI and official Skills as one compatible release. |
| Recover safely | Continue the same publication after a network or process interruption without uploading a duplicate product. |
Install the CLI and official Skills:
curl -fsSL https://s3.viceme.cn/start/install.sh | sh
Start a new Codex, Claude Code, or WorkBuddy conversation so the Agent can discover the installed Skills.
Attach a local Skill directory or ZIP and ask naturally:
Publish this Skill to ViceMe.
The Agent checks login, keeps the selected Profile fixed throughout the workflow, validates the Skill, immediately uploads the private Draft, and opens its real Owner Preview. It uploads media candidates without asking for a price, then the user's Agent prepares the bilingual copy and media suggestions. The Agent shows the complete listing—including the images—and asks one combined question for the price and any desired changes. It then shows the final review and asks once whether to confirm and publish it publicly.
Local Skill → Login → Validate and private upload → Owner Preview → Agent enrichment
→ Complete listing details + price question → Final review
→ Confirm and publish → Public URL
The initial request to “publish” is not permission to make the listing public. Public publication happens only after the final review is displayed and the user explicitly confirms it.
# Verify the installation and current account.
viceme doctor
viceme auth status
# Sign in only when auth status reports unauthenticated.
viceme auth login
# Confirm the MerchantAccountMember(OWNER) authority used for publication.
viceme merchant accounts
# Upload the real private draft and open its Owner Preview before pricing.
viceme skill publish --path ./my-skill --edition-key my-skill --edition-order 0
# With multiple active Merchant accounts, select the confirmed account:
# viceme skill publish --path ./my-skill --edition-key my-skill --edition-order 0 --merchant <merchant-account-id>
# Continue the same unpriced draft and upload media candidates.
viceme skill publish --resume <publication-id>
viceme publication review <publication-id>
# The Agent writes a revision-protected suggestion. Platform analysis is an explicit fallback only.
viceme publication suggest <publication-id> --input <suggestion.json>
# viceme publication analyze <publication-id> && viceme publication wait <publication-id>
# After reviewing the complete listing details, set CNY 1.00 on that draft.
viceme skill publish --resume <publication-id> --price-minor 100
The official bootstrap installs the native CLI and all official Agent Skills from one immutable release.
China:
curl -fsSL https://s3.viceme.cn/start/install.sh | sh
International:
VICEME_REGION=global sh -c "$(curl -fsSL https://s3.viceme.ai/start/install.sh)"
China:
[Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12
irm https://s3.viceme.cn/start/install.ps1 | iex
International:
[Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12
$env:VICEME_REGION="global"; irm https://s3.viceme.ai/start/install.ps1 | iex
If the bootstrap cannot be used, npm is the fallback:
npx --yes @viceme-ai/cli@latest install
The installer writes the compatibility fallback to ~/.agents/skills and the
native user directory of every detected supported Agent:
| Agent | Native directory |
|---|---|
| Codex | ~/.agents/skills (shared fallback; written once) |
| Claude Code | ~/.claude/skills |
| WorkBuddy | ~/.workbuddy/skills |
Codex uses the shared directory documented in Codex Skills.
--agent codex is an alias for agents, including install results and doctor
checks; it no longer writes $CODEX_HOME/skills (default ~/.codex/skills).
Existing legacy copies are left intact. Claude Code still needs its separate
native directory: Claude Code Skills
does not list .agents/skills as a discovery location.
Select a target explicitly with viceme install --agent codex, claude,
workbuddy, or agents. Run viceme doctor after installation or repair.
| Skill | Use it when you want to... |
|---|---|
creator-tools | install ViceMe, sign in through the browser, manage Profiles, update, diagnose, or repair the local setup. |
become-a-creator | apply for or check creator qualification for merchant-only workflows; personal profile publishing stays independent. |
customize-your-profile-page | use AI to create, locally preview, publish, update, or roll back any signed-in user's personal profile page. |
customize-your-work-page | use AI to redesign or import a downloadable Skill work page, including its visible actions and final preview. |
sell-a-skill | publish or update a paid or free downloadable Skill; websites, services, and generic goods are out of scope. |
use-a-skill | resolve free, purchased, or purchase-required access, install the selected Skill, and continue the original task. |
charge-for-your-work | configure follow or paid unlock for an existing website and integrate it into host code after the shared creator qualification check; platform resources stay internal. |
let-people-interact | branch between danmaku, open tips, or both; danmaku-bearing routes require a published Website Work with an exact canonical Origin, while Tip can use any eligible published Merchant Work. It defaults to Mounted UI and uses Headless only for an explicit custom-UI request; none requires DNS ownership verification. |
let-others-make-a-copy | publish a complete website source ZIP with a root VICEME-REPLICA.md, then integrate the platform-provided replica prompt into the creator's own site; it does not perform buyer checkout or installation. |
let-me-make-a-copy | accept a website copy invitation; install from the regional S3-hosted official Skill ZIP, reuse account-bound or anonymous CLI purchasing when available, preserve an existing standalone recovery, and fall back to the bundled no-CLI script. |
Buyer-side use-a-skill and let-me-make-a-copy keep independent names because they are not creator workflows.
The Agent Skills own the conversational workflow and approval rules. The CLI owns deterministic local work and API calls. This separation lets an Agent explain decisions while the same command contract remains reproducible from a terminal or automation.
The current publication flow accepts one local directory containing a root
SKILL.md, or one local ZIP. Common GitHub ZIPs with a single wrapping
directory are normalized automatically. Remote URLs and multi-Skill bundles
are not accepted.
| Stage | Responsibility |
|---|---|
| Login | Browser authorization happens before protected API work. Every command remains pinned to the same Profile and API origin. |
| Inspect | Local validation rejects unsafe paths, special files, excessive content, sensitive files, and common secret patterns. |
| Private upload and preview | The initial publish request authorizes the private Draft upload. The real package is verified and its Owner Preview opens before pricing. |
| Agent enrichment | The user's Agent reads the Skill as untrusted source data, prepares bilingual copy, and selects verified cover and gallery uploads. Platform analysis is an explicit fallback only. |
| Listing details and price | After enrichment, the Agent displays the exact title, bilingual copy, cover, and gallery, then asks one combined question for the CNY price in fen and any desired changes. It never asks for price by itself. |
| Review | The Agent displays the exact copy, price, cover, and gallery images. The listing title is at most 20 characters and the summary is at most 100; Chinese and ASCII each count as 1. |
| Publish | One explicit final confirmation authorizes review confirmation followed by immediate, irreversible public publication. |
If the upload or response is interrupted, continue the existing publication:
viceme skill publish --resume <publication-id>
Never create a second publication merely because the previous response was unknown. Query or resume the existing ID first.
Each Profile binds one API base URL, Web base URL, market region, and device-authorized account as one authority. The separately stored distribution region selects only the CLI and bundled Skill download source.
Official CN Profiles use API https://viceme.cn/api and Web
https://viceme.cn; GLOBAL uses API https://viceme.ai/api and Web
https://viceme.ai. Commands append /v1/... to the API base, so requests
enter the site's Gateway as /api/v1/....
Profiles saved with the retired https://api.viceme.cn or
https://api.viceme.ai roots resolve to the corresponding Gateway URL in
memory. Reading a Profile does not rewrite its configuration file; the next
explicit save persists the canonical URL. Profile IDs, existing credentials,
publication bindings and pending requests keep their original local storage
identity. Only these two official endpoint aliases are recognized; custom
hosts, paths, ports and local development endpoints remain separate.
Previously installed product Skills can contain an older Python runtime.
After updating the CLI, viceme skill ready <product> --skill-dir <directory>
reports that installation needs repair. Run
viceme skill install <product> --skill-dir <directory> explicitly to refresh
it in place. Repair preserves trial identity, pending requests and user files;
it does not reset the server's trial quota. Background CLI updates do not
rewrite installed Skills. Standalone Python users need the newly published
official bootstrap before repairing an old installation; an old embedded
script cannot update itself after its API host has been removed.
viceme auth login
viceme auth status
viceme auth logout
viceme profile list
viceme profile use default
For a test or private deployment, persist a generic HTTPS endpoint in a dedicated Profile before signing in:
viceme profile add \
--name private-cn \
--api-base-url https://api.example.com \
--web-base-url https://www.example.com \
--market-region cn \
--use
viceme auth login
VICEME_API_BASE_URL is an API-only one-process CI/debug override, not Profile
state. Persistent login is disabled while it is set.
Remote custom endpoints require HTTPS; only localhost and loopback development
may use HTTP. Credentials are isolated by Profile authority, and an Agent
must never switch to another Profile merely because it is already signed in.
The official hosted development environment uses API https://dev.viceme.cn/api,
Web https://dev.viceme.cn, and market cn. The CLI pins its Commerce signing
key to that HTTPS origin for paid Skills and Website Replica licenses. Select
an existing dev Profile, or substitute these addresses and name in the
profile add example above. The development key is not trusted on production
origins, other domains, or other ports. Unknown remote keys are never fetched
and trusted dynamically. Key rotation requires a CLI release first; see
the release guide.
viceme auth login intentionally keeps running until browser authorization
finishes or its bounded timeout expires. Keep the command active, show the
one-time complete URL to the user, and wait for the final result. The page signs
the user in when necessary and authorizes the CLI automatically; the user never
types a device code. If the wait expires, start a fresh viceme auth login.
Never copy an access token into the conversation.
| Command | Purpose |
|---|---|
viceme version | Show the CLI and bundled Skill versions. |
viceme doctor | Check the CLI, active Profile, credentials, API readiness, and installed official Skills. |
viceme auth status | Show whether the active Profile is signed in. |
viceme profile list | Show Profiles and their API, Web, and market authorities. |
viceme profile page describe | Resolve the signed-in user's server-authoritative personal profile URL and supported page capabilities. |
viceme profile page upload ... | Validate and upload a static personal profile bundle together with its owner-only editable source, without Merchant or an online preview. |
viceme profile page status/source/publish/activate ... | Inspect, restore, publish, or roll back the current user's immutable personal profile releases with concurrency protection. |
viceme skill inspect --path <path> | Validate a local Skill without side effects. |
viceme skill listing prepare --path <path> | Create or recover the stable private owner preview and persist the local binding. |
viceme skill listing get <listing-id> | Read the authoritative private Listing state. |
viceme skill listing bind <listing-id> --path <path> | Explicitly bind a source to a selected owned Listing. |
viceme skill publish --path <path> --edition-key <key> --edition-order <order> [--merchant <id>] | Freeze the selected owned Merchant, upload the real private package, and return its Owner Preview before pricing. Edition selection is always explicit; --merchant is required only when multiple active Merchants exist. |
viceme skill publish --resume <id> | Continue the same unpriced Draft and upload media candidates without starting a platform model. |
viceme publication review <id> | Read the authoritative bilingual copy, price, selected media, and review state. |
viceme publication suggest <id> --input ... | Apply Agent-generated bilingual copy and media with Draft revision protection. |
viceme publication analyze <id> | Explicitly request platform-model analysis when the current Agent cannot perform enrichment. |
viceme publication wait <id> | Wait for an explicitly requested platform analysis without re-uploading. |
viceme skill publish --resume <id> --price-minor <fen> | Apply the reviewed CNY price to the same Draft without creating another Listing. |
viceme publication asset upload ... | Replace user-selected media, or add --candidate-only to stage Agent-provided media for publication suggest. |
viceme publication update ... | Replace the complete listing draft from a strict JSON file. |
viceme publication confirm ... | Confirm the exact current review digest. |
viceme publication publish ... | Make a confirmed listing public. |
viceme replica preview --url <loopback-page-url> | Open the actual local page for the creator. The CLI validates connectivity; the creator reviews styling and the agent owns the server lifecycle. WorkBuddy flows present the page with present_files in the task preview. Missing input returns PROVIDE_PREVIEW_URL, without inspecting project filenames. |
viceme replica publish --path <project-or-zip> --page-dir <directory> --page-entry <relative-html> --preview-reviewed ... | Agent 明确选择可部署页面目录和 HTML 入口;CLI 不搜索 dist/build/out,不推断框架,不运行构建。纯静态项目可以用 --page-dir .,相对目录基于源码根目录(ZIP 输入基于 ZIP 所在目录)。创作者确认预览后冻结 SOURCE 与 PAGE,返回 30 分钟终审;原样执行 --confirm 命令上传。未提供页面选择时返回 PREPARE_HOSTED_PAGE;PROCESSING 仅表示已提交。 |
viceme replica repair-hosting --publication <ID> --path <page-directory> --page-entry <relative-html> | Agent 选择目录与入口,只修复页面托管;已有 WorkPage ZIP 则以 ZIP 为 --path,不传入口参数。执行返回的确认命令,中断后复用同一请求,源码和买家权益保持不变。 |
viceme replica sales --replica <ID> | Inspect the current source version, price and management permission; suspended owners retain read-only access. |
viceme replica analytics <work-url> | 使用当前 Profile 校验作品 OWNER 权限,再带身份实时读取该作品的 Markdown;返回 markdownUrl、markdown 和 fetchedAt。拒绝其他 Web authority 和重定向,不向输出暴露凭据。 |
viceme replica price --replica <ID> --price-cents <cents> | Review a price change (0 is free), then run the complete returned confirmation command. No source upload is required. |
viceme replica delist --replica <ID> / viceme replica relist --replica <ID> | Review delisting or relisting, then run the complete returned confirmation command. Existing purchase rights remain unchanged. |
viceme replica publish --path <project-or-zip> --state-project <same-project-or-zip> ... | Keep atomic publication recovery state in the authorized project’s .viceme directory. Preserve this locator for confirmation, status, resume and cancel; existing requests are never silently migrated. See sandbox storage and recovery. |
viceme replica status <publication-id> | Read authoritative Website Replica Publication state and complete the stable local binding after a published terminal state. |
viceme replica resume <publication-id> | Continue only the missing upload, verification, submission, or allowed retry step from authoritative state. |
viceme replica cancel <publication-id> | Cancel a Publication before activation and clean its local recoverable source. |
viceme replica install <code> [--target <new-directory>] | With an authenticated Profile, display the authoritative Quote before --confirm; add --accept-price-cents <fen> for anonymous checkout and --payment-presented only after its hosted payment page opens. Both paths atomically install the paid source. |
viceme update | Explicitly update the CLI. Refresh official Skills separately with viceme install --agent auto. |
viceme merchant accounts | List ordinary MerchantAccounts where the current User is the OWNER member. |
viceme merchant work ... | Create, inspect, update, and publish Merchant Works, including Website Works. |
viceme merchant page ... | Validate, preview, publish, inspect, and roll back immutable custom Creator/Work page bundles. |
viceme merchant work website-verification ... | Create, inspect, verify, or revoke DNS ownership for one Website Work. |
viceme merchant work sdk-access ... | Manage hosted danmaku/tip and follow/paid access on one Work. Hosted and access domains preserve each other; creation returns permanent public keys.test and keys.live identifiers, not credentials. |
viceme merchant commerce-application ... | Manage Commerce Applications. For open tips, a matching application is optional trusted-source attribution rather than an authorization gate. |
viceme merchant product ... | List, suspend, or archive Products (downloadable Skill editions and website access products). |
viceme commerce ... | Install and run a signed purchase Skill through session, quote, payment order, and same-session status commands. |
Run viceme <command> --help for the full flags and JSON fields.
The page hosting Tip UI and the selected Work are separate resources. No engagement route requires Website ownership or DNS verification. A Tip-only integration does not register the host as a Website Work. Danmaku-only and combined routes still use a published Website Work whose canonical Origin exactly matches the deployment Origin. The current release likewise does not require DNS TXT verification or a registered embedding Origin for Website follow/paid access.
The combined route uses one published Website Work because danmaku requires
that identity. It renders one bottom interaction bar on one target, with Tip
opened from that bar instead of a body card or host-rendered Headless control.
Tip itself adds no domain or Commerce Application gate, and
engagement does not create or mutate Website Widget applications. Website
follow/paid access and its platform-managed WEBSITE_WIDGET resources are
provisioned internally by the charging flow and Shop, with no Origin/DNS or
checkout-parent gate.
Separately configured domain-bound HOSTED_CHECKOUT applications and signed
webhooks retain their ownership-verification rules.
Without matching optional trusted-source attribution, ViceMe still records the actual browser source as an unverified Origin; it does not reject an open tip.
Business output is JSON by default. Successful output is the only content on
stdout; progress and diagnostics use stderr. Errors use a non-zero exit code
and a stable error.code, so Agents and automation never need to parse message
text.
{
"ok": true,
"data": {},
"meta": {
"executingCliVersion": "<version>",
"autoUpdate": {
"from": "<previous-version>",
"to": "<executing-version>",
"status": "updated"
},
"requestId": "optional"
}
}
meta.executingCliVersion is the version of the process that emitted the
response. For viceme update, the newly installed version is reported
separately as data.cli_version because the response is still emitted by the
process that started the update. meta.autoUpdate may appear when startup
recovery had to hand an already-started command to a newly committed CLI.
After an ordinary command has emitted its response, a detached worker checks
the stable release channel and updates only the CLI. The foreground command never waits
for release discovery or activation, and background launch, network,
permission, or installation failures never replace its JSON response. A
successful replacement is used by the next viceme process; it does not
require restarting the surrounding Codex, Claude Code, or WorkBuddy app.
Checks are coalesced for 24 hours, while failed checks or updates become
eligible for another background attempt after one hour.
Official Skills are a separate lifecycle because an Agent usually loads them
when a task starts. CLI auto-update therefore never rewrites Skill directories.
Refresh them intentionally with viceme install --agent auto, then start a new
Agent task when the host needs to rediscover the files.
viceme update --check
viceme update
viceme install --agent auto
viceme update remains the explicit CLI repair command and keeps the same
permission preflight and durable recovery rules. For compatibility,
viceme update --agent <target> still requests a combined CLI and Skill
repair, but new automation should keep the two commands separate.
Permission preflight checks every path that the selected installation method will mutate before creating an activation journal. For npm this includes the configured cache, actual scoped global package, and launcher directories through Node so the host filesystem broker is preserved. For standalone CLI-only updates it checks the executable directory; a separate Skill install checks every selected Agent destination. A denied explicit-update preflight keeps the previous generation intact and requests host approval. A denied background attempt is recorded locally and does not affect the foreground command. Permission can still change after preflight, so any failure after an install attempt retains the recovery journal until startup recovery completes.
An explicit update or pending recovery that lacks filesystem access returns
UPDATE_PERMISSION_REQUIRED (exit 6, not automatically retryable). The Agent
must request access through its host's official approval mechanism and retry
viceme update only after access is granted. A chat message granting consent
does not itself change OS or host permissions. If approval is refused,
unavailable, or still insufficient, stop updating. Never delete recovery
journals, uninstall the CLI, or bypass host restrictions to force an update.
Pending recovery is identified by error.details.recovery_required or
recovery_pending target statuses; it must not be treated as an intact old
installation. Neither raw npm output nor credentials are included in errors.
Requirements: Go 1.23+ and Python 3.9+; Node.js 22+ is required for npm packaging checks.
make check
make npm-package-check
make release-manifest
The CLI and official Agent Skills are versioned and released together. GitHub,
npm, s3.viceme.cn, and s3.viceme.ai artifacts come from the same reviewed
commit.
国内站登录后,可由 Agent 调用官方 withdraw-income Skill 自主提现;旧凭证首次使用时重新运行 viceme auth login。
viceme withdraw context
viceme withdraw create --request-id <稳定任务标识>
viceme withdraw create --request-id <稳定任务标识> --amount 100.00
viceme withdraw status --request-id <原任务标识>
--amount 的单位是人民币元;省略时按可提现收入、渠道上限和剩余当日额度选择金额。
每个新任务使用新请求标识;首次办理、重新登录和网络失败后沿用原标识及原参数恢复。
CLI 在当前账号与 Profile 下保存请求,确保恢复时不会重新选额或换账户。
渠道需要本人实名签约、绑定或确认收款时,Skill 展示现有网站入口,完成后继续原单。
PENDING 与 ACTION_REQUIRED 均不代表到账;只有 SUCCEEDED 表示全部提现成功。
定期触发和长时间跟踪由上层 Agent 负责。
merchant work tutorial publish <work-id> 从 --input tutorial.json 发布教程;必填 --merchant、--request-id、--expected-version、--preview-steps、--price-cents。重试复用原请求 ID 和完整输入,价格 0 表示全文公开。教程与网站源码分别授权,版本发布后不可修改。
viceme tutorial preview <work-id>
viceme tutorial read <work-id> --version 1
viceme tutorial buy <work-id> --version 1
viceme tutorial download <work-id> --version 1 --output tutorial-v1.json
预览无需登录;读取、购买入口和下载使用当前 CLI 账号。buy 返回网站结账入口,需在网站使用相同账号完成支付;不自动扣款。下载仅导出已解锁的指定版本 JSON,拒绝覆盖已有文件。网站托管预览沿用 replica publish --page-dir ... --page-entry ...,无需新增上传机制。需要先部署 Shop 的教程 API,再使用这些命令。
FAQs
Install the ViceMe creator CLI and official Agent Skills
The npm package @viceme-ai/cli receives a total of 1,343 weekly downloads. As such, @viceme-ai/cli popularity was classified as popular.
We found that @viceme-ai/cli demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
GitHub Actions now supports cache-mode, a least-privilege control on the Actions cache aimed at the cache poisoning technique behind recent compromises.

Company News
Allow myself to introduce... myself.

Research
/Security News
A Twitch browser extension on Chrome and Firefox forwards users’ live OAuth session tokens through proxies controlled by a Russian bot service.