esa-cli

esa-cli is a skill for Cursor from esaio/esa-skills. It costs 102 tokens per session (2,298 once invoked), scanned A, original, MIT.

A guide to using the esa command-line tool to manage esa.io, a team knowledge base for writing and sharing posts.

In plain words
What is it for?
Use it to search, read, create, update, archive, duplicate, or otherwise manage esa posts, comments, categories, tags, members, and attachments.
Why use it?
It explains authentication, team selection, output formats, and commands so an agent can interact with esa predictably.

Skill for Cursor

Written for Cursor: shipped in a Cursor plugin.

Part of the esa plugin — 1 skill shipped together

Good fit Use it to search, read, create, update, archive, duplicate, or otherwise manage esa posts, comments, categories, tags, members, and attachments.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/esaio/esa-skills/esa-cli
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.

Any agent
npx skills add esaio/esa-skills --skill esa-cli
Clone the repo
git clone --depth 1 https://github.com/esaio/esa-skills

Made for: Cursor.

Or install esa, the plugin that ships this one along with the rest of its 1 skill.

Its marketplace also offers this one on its own, as the plugin esa/plugin install esa after adding the marketplace above.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for esa-cli

README.md
[![agentmods](https://agentmods.dev/badge/skills/esaio/esa-skills/esa-cli/github.svg)](https://agentmods.dev/skills/esaio/esa-skills/esa-cli)
Your own site
<a href="https://agentmods.dev/skills/esaio/esa-skills/esa-cli"><img src="https://agentmods.dev/badge/skills/esaio/esa-skills/esa-cli/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for esa-cli

Your own site · 80×15
<a href="https://agentmods.dev/skills/esaio/esa-skills/esa-cli"><img src="https://agentmods.dev/badge/skills/esaio/esa-skills/esa-cli.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 102 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,298 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
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.1 $0.00102 $0.02298
Opus 5 $0.00051 $0.01149
Sonnet 5 $0.00020 $0.00460
Haiku 4.5 $0.00010 $0.00230

Measured 10d ago against content hash eec8a394f350, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-09, from the pricing page.

Security

Grade A, and why

esa-cli 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 10d 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/esa-cli/SKILL.md · 155 lines

How it starts

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

esa CLI

esa(esa.io)を esa コマンド(@esaio/esa-cli)で操作する。

ここに載せるのは頻出の操作だけ。サブコマンドとオプションの全体は esa --help / esa <command> --help で確認する。

出力の形式

コマンドの結果は stdout、確認・エラーなど人間向けのメッセージは stderr に出る。 結果の形は出力先で変わり、端末では読みやすく整形され、パイプでは機械が扱いやすい テキストになる。一覧は TSV(見出し無しのタブ区切り。タブ・改行は空白に均される)、 1 件表示は key<TAB>value の行(本文を持つものは -- の後に本文が続く)。

JSON で受け取りたいときは --json <fields> を付ける。指定したフィールドだけが JSON になり、フィールド名を省いて --json だけ渡すと候補が表示される。

esa post list --json number,full_name,url   # 機械的に扱うならこれ
esa post view 123 --json body_md            # 本文だけを取り出す
esa post list --json                        # 指定できるフィールドを確認
  • 作成・更新(create / update / append / prepend / archive / duplicate / rollback / attachment upload)の stdout は URL だけ。削除は stdout に何も出さない。
  • esa api は API のレスポンスをそのまま JSON で返す。
  • esa attachment download はファイル本体を出す(通常は --output <path> で保存)。

認証

esa auth status で確認。未認証なら esa auth login(ブラウザで OAuth 認証)。 環境変数 ESA_ACCESS_TOKEN が設定されていればそれも使える。

トークンのスコープは絞られていることがある。許可されたスコープは esa auth status で分かる。スコープ不足で失敗したら、必要なスコープを添えた esa auth login --scopes read:post,... をユーザーに促す(ブラウザ操作が要るので 勝手に実行しない)。

対象チームの解決

記事・コメント系はチームを対象に動く。チームは次の順で決まる:

  1. --team <name>
  2. 環境変数 ESA_TEAM
  3. 既定チーム(esa config set default-team <name>
  4. 所属チームが 1 つだけならそれ
  5. 複数所属で未指定ならエラー

明示するときは各コマンドに --team <name> を付ける。4 の所属チームの取得には read:team が必要なので、このスコープが無いトークンでは 1〜3 で指定する。

コマンドの構成

  • esa post — 記事。list / search / view(get は別名)/ create / update / append / prepend / duplicate / rollback / revisions / backlinks / archive / delete
  • esa comment — コメント。list / view(get は別名)/ create / update / delete
  • esa category / esa tag / esa member — それぞれ list
  • esa team — list / stats
  • esa user — 認証ユーザーの情報
  • esa attachment — upload / sign / download
  • esa feedback — create(esa.io 運営へのフィードバック送信)
  • esa config — set / get。キーは default-teamlanguageesa config --help で一覧)
  • esa api <path> — 専用コマンドが無い API を直接叩く

よく使う操作

esa post list -q "wip:true"        # 検索クエリで絞り込み(search <query> でも同じ)
esa post view 123                  # 記事を 1 件表示(本文込み)
esa post view 123 --json body_md   # 本文だけを JSON で取り出す
esa post revisions 123             # rollback に渡すリビジョン番号を調べる

# 作成。名前に "/" を含めるとカテゴリになる(--category でも指定可)。既定は WIP
esa post create "dev/docs/新しい記事" --body "本文" --tags a,b --ship

esa post update 123 --name "改題" --ship   # 指定した項目のみ更新
esa post append 123 --body "末尾に追記"

esa comment create 123 --body "コメント本文"

esa attachment upload ./diagram.png   # stdout に添付の URL が出る

# 非対話環境での削除。ユーザーが明示的に削除を依頼し、対象を確認した後だけ実行する
esa post delete 123 --yes          # comment delete も同様

Read the full file on GitHub · 155 lines

Files

What ships with it

1 file 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. 10d ago First seen · 155 lines · 102 tokens per session scan A eec8a394f350

Subscribe to this mod's changes

esa-cli is a skill published in the GitHub repository esaio/esa-skills (5 stars, last pushed 2d ago), licensed MIT. It adds 102 tokens to every session and 2,298 once invoked, about $0.0005 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-31.