thing について
thingはコーディングエージェント向けのCLIで、HTML、Markdown、画像、PDFなどを公開し、バージョン、共有、コメントを管理します。MCPサーバーも備え、対応クライアントから成果物の公開や関連情報の確認ができます。
主な機能
- 01HTML、Markdown、画像、PDFの公開
- 02変更不可バージョンと共有リンクの作成
- 03アカウント、チーム、プロジェクト先の管理
- 04バージョン、コメント、回答の確認
- 05成果物のエクスポートとロールバック
活用シーン
- 01コーディングエージェント生成のレポートを共有
- 02文書の複数バージョンを公開して追跡
- 03成果物のコメント確認やページ回答の送信
- 04アカウントやチームの成果物を一括エクスポート
MCP 対応
thingはstdioでMCPサーバーを実行し、成果物の公開、一覧、読み取りと、バージョン、コメント、回答の確認ツールを提供します。クライアントからページ回答を送信し、利用中のアカウントとチームも確認できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @unravel-tech/thingTHING_TOKENシークレットAPI token from usething.ai, under Settings then Tokens. Lets the server publish on your behalf with no terminal login.THING_SERVERBase URL of the thing server. Defaults to https://usething.ai; only set this for a self-hosted instance.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
5掲載時のツール一覧 · 2 週間前に更新
このツールにパラメーターはありません。
詳細
@unravel-tech/thing
thing 用の CLI です。コーディングエージェントから、アーティファクト(HTML ページ、Markdown ドキュメント、単体の画像、PDF)をプッシュ、バージョン管理、共有できます。
npx -y @unravel-tech/thing push report.html
最初のプッシュ時にブラウザーで承認画面が開き、サインインを待ってから処理が再開され、永続的な URL が表示されます。Markdown、画像、PDF も同様に使えます。頻繁に使う場合は、グローバルにインストールしてください:npm i -g @unravel-tech/thing。
コマンド
| コマンド | 説明 |
|---|---|
thing --version / thing version | インストール済みの CLI バージョンを表示します |
thing update [--force] [--manager npm|bun] | 最新リリースをグローバルにインストールします。サーバーが現在のバージョンを最新と報告していても、--force を指定すると実行します |
thing login [--account name] [--server url] [--no-browser] | デバイスコードログインで、指定したアカウントを追加または更新します。名前を省略すると、認証済みのメールアドレスが使われます |
thing accounts | 保存済みのアカウントを一覧表示し、このディレクトリで選択されるアカウントを示します |
thing switch <account> [--local] | グローバルのデフォルトアカウントを変更するか、現在の Git リポジトリ/作業ディレクトリにアカウントを紐付けます |
thing switch --clear-local | 現在のディレクトリが引き継いでいるアカウントの紐付けを解除します |
thing logout [--account name] [--all] / thing whoami | 保存済みの認証情報を削除します/選択されたユーザー情報と、プッシュ先を表示します |
thing default [team] [--clear] | サーバー側のデフォルトのプッシュ先を表示または設定します(--team を指定しない場合、どのマシンからでも使用されます) |
thing setup claude [--remove] [--dry-run] | Claude Code の自動モードで拒否されずに thing へ公開できるようにします。Claude Code のデフォルト設定を維持しながら、~/.claude/settings.json の autoMode の信頼エントリに usething.ai と thing push を追加します。自分で実行してください(Claude Code で ! npx -y @unravel-tech/thing@latest setup claude と入力します)。--remove で元に戻します |
thing use <team> [project] | このマシンで有効なチーム/プロジェクトのローカル上書きを設定します |
thing push <file.html|.md|.pdf|.png|.jpg|.gif|.webp> [--name x] [--team t] [--project p] [--visibility v] [--password p] | 必要に応じて認証し、新しい変更不可バージョンをプッシュして、配信 URL を表示します。--visibility は private(自分と追加したユーザーのみ)、team(組織内の全員。デフォルト)、または public(リンクを知っている人なら誰でも)です。--password を設定すると、チームやユーザーのアクセス権に加えて、パスワードを知っている人なら誰でもアーティファクトを開けます |
thing list | 閲覧可能なアーティファクトを一覧表示します。--label または --search で絞り込み、--sort created または updated と --order asc または desc で並べ替え、--limit と --offset でページを指定できます |
thing get <name> [--version n] [--output file] | プッシュ済みバージョンのソースを読み取ります。HTML と Markdown は標準出力に表示され、PDF と画像はダウンロード時の名前(既存ファイルは上書きしません)または --output で指定した場所に保存されます |
thing export --all [--output file] / thing export --team <slug> | アカウントが保持するすべてのデータ(アカウント、すべてのアーティファクトのバージョン、自分のコメント、Inputs の回答)、または管理者としてチーム全体を 1 つの zip ファイルにダウンロードします。アーティファクトは最新のプッシュから 30 日後に有効期限が切れるため、コピーを保管してください。ファイルは上書きしません |
thing comments <name> | 閲覧可能なアーティファクトのコメントと返信を取得します |
thing versions <name> | アーティファクトのバージョン履歴を表示します。閲覧者と公開リンクから利用できます |
thing responses <name> [--mine] [--collection c] [--history] [--csv] | ページの Inputs の回答を読み取ります(公開者と編集者にはすべての回答者の回答が表示されます)。各行には、ブラウザーとエージェントのどちらから送信されたかが示されます |
thing respond <name> <collection> (--data '{json}' | --field key=value ...) [--version n] | サインイン中のユーザーとして、ページの Inputs に回答します。--field は複数回指定でき、true、false、null、数値を型として扱います。via: agent として記録されます |
thing rollback <name> <n> | 最新バージョンをバージョン n に戻します |
thing open <name> | ブラウザーでアーティファクトを開きます |
thing mcp | 標準入出力を介して Model Context Protocol サーバーを実行します(ツール:server_info、push_artifact、list_artifacts、get_artifact、list_artifact_versions、list_artifact_comments、list_artifact_responses、submit_artifact_response、whoami) |
<name> はアーティファクト名、team/slug、または貼り付けたリンクです。/v/N を含むリンクではそのバージョンが固定され、?k= のリンクキーも保持されます。別のホストのリンクは、自分のサーバーが同じアーティファクトだと確認しない限り、トークンを使わずに読み取られます。
push はサーバーの notes(たとえば Inputs の間違い)を標準エラー出力に表示し、--json にも含めます。
すべてのコマンドは、機械可読な出力を得るための --json を受け付けます。認証が必要なコマンドでは、保存済みアカウントを一度だけ使用する --account name も受け付けます。これを使っても、グローバルのデフォルトやディレクトリのバインドは変更されません。
未認証の push --json は、改行区切りの認証ステータスを出力します。最後の JSON オブジェクトは常に push の結果です。CI などで対話型認証を開始せずにすぐ失敗させるには、--no-login を使います。
公開範囲の値:private、team、anyone-with-link(トークン付き共有 URL を出力)、public。
アップデート
Thing は、Thing サーバーが公開する推奨アップデートと必須アップデートに対応しています。推奨アップデートは、レート制限された通知を stderr に出力しますが、コマンドは続行されます。必須アップデートがある場合は、通常のコマンドを終了コード 3 で停止します。ただし、--help、--version、update は引き続き使用できます。--json は、構造化された CLIENT_UPDATE_REQUIRED エラーを返します。
CLI は最大 1 時間に 1 回確認を行い、同じ推奨通知を表示するのは 1 日に 1 回までです。推奨通知を非表示にするには、THING_NO_UPDATE_NOTICES=1 を設定します。必須アップデートは非表示にできません。現在のバージョンが引き続きサポートされている場合でも、最新リリースを再インストールするには thing update --force を使います。
MCP セッションでは、初期化ハンドシェイクと server_info ツールを通じてインストール済みのバージョンを公開します。推奨アップデートは、MCP の指示、ログ通知、最初の業務ツールの結果に表示されます。必須アップデートがある場合、server_info は引き続き利用できますが、Thing をアップデートして MCP クライアントを再起動するまで、アーティファクトツールは停止します。
対応する Thing サーバーのエンドポイントと適用ミドルウェアについては、THING_SERVER_UPDATE_POLICY.md で仕様を定めています。
コンテキストの解決
アカウント
Thing では、1 台のマシンで複数のログインを保持できます。アカウントを追加するときに短い名前を付け、一覧表示したり、グローバルのデフォルトを切り替えたりできます。
thing login --account work
thing login --account personal
thing accounts
thing switch work
現在のリポジトリにアカウントを関連付けるには、次を実行します。
thing switch work --local
Git リポジトリ内で実行すると、リポジトリのルートとその配下すべてのディレクトリがバインドされます。Git リポジトリの外で実行すると、現在の作業ディレクトリとその配下がバインドされます。バインドはユーザー設定に保存され、.thing.json には保存されません。そのため、個人用のアカウント名や認証情報がリポジトリの変更に含まれることはありません。ローカルのバインドはグローバルのデフォルトより優先され、--account personal は 1 つのコマンドに限りその両方より優先されます。バインドを削除するには、thing switch --clear-local を使います。
既存の単一ログイン用設定ファイルは、default という名前のアカウントに自動的に移行されます。--account を指定せずに新しいログインを行うと、認証済みメールアドレスがアカウント名として使われます。
アカウントは次の順序で選択されます:--account → 最も近いリポジトリ/ディレクトリのバインド → グローバルの thing switch 選択 → 保存済みの唯一のアカウント。THING_TOKEN と THING_SERVER は、引き続き CI および MCP 設定で保存済みの認証情報より優先されます。
ワークスペースとプロジェクト
ワークスペース(API および --team フラグではチームと呼ばれます)には、チームのアーティファクトが格納されます。プロジェクトはワークスペース内のアーティファクトをまとめるもので、プロジェクトに追加されたユーザーのみにアクセスを制限できます。ワークスペース外のユーザーをゲストとしてプロジェクトに追加することもできます。--project <slug> を指定して、そのプロジェクトに push します。
CLI または MCP からプロジェクトを管理できます。
thing projects --team acme
thing project create "Q4 launch" --team acme --restricted --brief "Ship by week 3"
thing project add acme/q4-launch [email protected] --role editor
thing project set acme/q4-launch --access open --archive
thing push index.html --team acme --project q4-launch --home # the project's page
プロジェクトのページ自体を、プロジェクトのアーティファクトの 1 つにできます。そのページ内で thing.project.get() を実行すると、各閲覧者自身のアクセス権に基づいて、プロジェクトのアーティファクトが一覧表示されます。
push 先のワークスペースは、次の順序で決まります:--team フラグ → 作業ディレクトリ内の .thing.json → ローカルの thing use 上書き設定 → サーバー側のデフォルト(thing default)→ 個人用スペース。ログイン時にワークスペースが固定されることはなくなったため、上書き設定がない場合はサーバーがデフォルトを選択します(例:Unravel のメンバーには Unravel 組織が選択されます)。
MCP
Claude Code、Cursor、Codex など、Model Context Protocol に対応しているものなら何でも thing 経由で公開できます。ターミナルでのログインは不要です。usething.ai の Settings、次に Tokens からトークンを作成し、クライアントの MCP 設定に貼り付けてください。
{
"mcpServers": {
"thing": {
"command": "npx",
"args": ["-y", "@unravel-tech/thing@latest", "mcp"],
"env": { "THING_TOKEN": "paste-your-token-here" }
}
}
}
Bun はインストールされているものの Node がないマシンでは、npx を bunx に置き換えてください。
{
"mcpServers": {
"thing": {
"command": "bunx",
"args": ["-y", "@unravel-tech/thing@latest", "mcp"],
"env": { "THING_TOKEN": "paste-your-token-here" }
}
}
}
サーバーでは次のツールを利用できます。インストール済みのバージョンと更新状況を確認する server_info、ファイルまたはインラインコンテンツを公開してリンクを取得する push_artifact(サーバーの notes も返します)、公開済みのものを一覧表示する list_artifacts、バージョンのソースを読み取る get_artifact(テキストはインラインで表示され、PDF と画像は save_to に保存されます)、list_artifact_versions、list_artifact_comments、ページの Inputs への回答を読み取る list_artifact_responses、ユーザーから依頼された場合に回答を送信する submit_artifact_response、公開先のアカウントとチームを確認する whoami です。アーティファクトを受け取るツールでは、名前、team/slug、またはリンクを指定できます。
すでに thing login を実行している場合は、保存済みの認証情報が使われるため、THING_TOKEN は省略できます。
ランタイム
Node >= 18 または Bun が必要です。ランタイム依存関係はありません。thing 実行ファイルは、PATH 上にあるどちらか(Node が優先)で起動するため、Node が一度もインストールされたことのないマシンでもグローバルインストールが機能します。
bun i -g @unravel-tech/thing
thing login
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。