mo-shared

A shared instruction set for using the 墨问 command-line tool, including setup, API-key handling, response parsing, and security rules. A command-line tool is software operated through a terminal.

In plain words
What is it for?
Initializing 墨问 configuration, interpreting command results, finding users or notes, and handling API-key errors.
Why use it?
It gives related 墨问 commands consistent rules for authentication, error handling, and displaying results safely.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/mowenxd/cli/mo-shared
Any agent
npx skills add mowenxd/cli --skill mo-shared
Clone the repo
git clone --depth 1 https://github.com/mowenxd/cli

Made for: Claude Code, Codex.

Per session 50 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,525 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00050 $0.01525
Opus 5 $0.00025 $0.00763
Sonnet 5 $0.00010 $0.00305
Haiku 4.5 $0.00005 $0.00153

Measured 2d ago against content hash 5b763b5a05ec, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

mo-shared scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/mo-shared/SKILL.md · 86 lines

How it starts

The opening of the file, as written. The whole thing — 86 lines — stays where its author put it; the contents beside it link to each section on GitHub.

mocli - 墨问 CLI 共享规则

本技能是墨问 CLI 技能库的前置技能,指导你如何通过 mocli 完成配置初始化、API Key配置、与 mocli 的交互响应解析、展示规则以及安全规则。

前置参考

通用执行流程

  1. 先判断用户意图对应的具体 mocli 子命令;不要用搜索类命令替代更精确的列表类命令。
  2. 如果命令需要 UID,而用户给的是人名、昵称或备注名,优先使用 mo-remark 查找 UID;未命中时再使用用户搜索或询问用户补充 UID。
  3. 执行 mocli 后先读取顶层 codestatusreason,确认成功后再解析 reply
  4. 展示列表类结果时,优先使用 reply 中的有序 ID 列表(如 note_idsuidsevents);再到对应的 Map(如 notesusers)取详情,避免直接遍历 Map 导致顺序错误。

配置初始化

首次使用,用户需提供墨问 API Key, 使用 mocli auth init --apik <api-key> 来完成初始化。

API Key 配置与管理

  • 使用过程中,如果 mocli 响应 AUTH 错误(用户可能在墨问平台重置了 API Key 或者 本地配置丢失),可提醒用户重新提供 API Key,使用 mocli auth init --apik <api-key> [--force] 来重新初始化或更换(--force) API Key。
  • 可以使用 mocli auth info [--profile] 查看当前的配置信息,使用 --profile 额外获取当前 API Key 对应的账户,在墨问平台上的 Profile 信息。

响应解析规则

  • code=0status=OK 表示成功;业务数据通常在 reply 中。
  • meta.alerts 表示重要提示,成功或失败时都可能出现;应优先关注,并按提示类型决定展示位置,例如 CLI 新版本提醒通常附在业务结果之后。
  • status=FAILcode!=0 表示失败,应优先展示 reasonmsgmeta.hints 中的可执行建议。
  • reason=AUTH:提醒用户重新提供 API Key,并使用 mocli auth init --apik <api-key> --force 更新配置;不要输出旧 API Key。
  • reason=VALIDATE:说明参数不合法,并根据当前 skill 的参数范围给出可选修正。
  • reason=NETWORK:说明网络或代理失败;如果是在受限环境里执行,可提示需要网络/代理权限。
  • reason=API 且存在 api_error.trace_id:展示 trace_id 便于反馈问题,但不要泄露认证信息。
  • 如果返回为空列表或空 Map,明确说明“没有找到符合条件的数据”,不要编造结果。

响应展示规则

总则:根据用户的要求,基于数据条目的数据多少,尽量清晰、明确、格式优美的展示给用户

细则:

  • 避免数据枯燥,适当增加一些 emoji 来增加数据的趣味性
  • 时间戳格式化为可读的时间
  • Bool 值尽量用 emoji 展示
  • 如果数据比较少,就尽量详细的展示信息给用户
  • 如果数据比较多,可以通过表格/列表等形式,尽量清晰、明确、格式优美的展示给用户。表格的字段选择上:
    • 首先根据用户的要求,选择出用户关心的字段
    • 如果用户没有指定字段,就展示大多数数据条目都具备的字段,最大化利用展示空间,同时尽量避免某一列只有少数数据
  • 以上细则如果与用户的要求不一致,以用户的要求为准

笔记列表展示建议:

  • 数据较少时,逐条展示核心信息:时间、作者、笔记标题、摘要。若用户关注某个字段(如阅读数、是否付费、公开状态),优先补充该字段。
  • 数据较多时,先给出简短概览(数量、时间范围、主要作者或主题),再列出若干条最相关或最新的重点笔记;不要只做概括而省略具体条目。
  • 笔记标题优先使用 note.title,如果标题本身不包含「」 或『』,就用『』包裹;作者优先使用 users[note.uid].name;摘要优先使用 note.brief
  • 字段缺失时不要编造内容。可省略缺失字段,或用“无标题”“未知作者”“无摘要”等明确占位。

Read the full file on GitHub · 86 lines

Files

What ships with it

4 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 86 lines · 50 tokens per session scan A 5b763b5a05ec

Subscribe to this mod's changes

mo-shared is a skill published in the GitHub repository mowenxd/cli (33 stars, last pushed 7d ago), licensed MIT. It adds 50 tokens to every session and 1,525 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

systematic-debugging

Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.

obra/superpowers · 21 tokens

next-cache-components-adoption

Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…

vercel/next.js · 95 tokens

babysit-pr

Babysit a GitHub pull request after creation by continuously polling review comments, CI checks/workflow runs, and mergeability state until the PR is merged/closed or user help is required. Diagnose failures, retry likely flaky failures up to 3 times, auto-fix/push branch-related issues when appropriate, and keep…

openai/codex · 114 tokens

imagegen

Generate or edit raster images when the task benefits from AI-created bitmap visuals such as photos, illustrations, textures, sprites, mockups, or transparent-background cutouts. Use when Codex should create a brand-new image, transform an existing image, or derive visual variants from references, and the output…

openai/codex · 113 tokens

cpu-profile-analysis

Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating…

microsoft/vscode · 71 tokens

next-cache-components-optimizer

Drive a Next.js route to instant navigation by setting up an agentic loop, under Cache Components / PPR, on initial load (hard navigation) and client-side navigation (soft navigation). Encode the goal as a failing @next/playwright instant() e2e and work it to green, one verified route at a time; the shipped test then…

vercel/next.js · 170 tokens