dsh-petとは?使い方・見た目の動かし方を実際に使って調べてみた動いた
この日に実際に動かした結果です。内容の誤りに気づかれた場合はお問い合わせください。確認のうえ訂正します。
使う前に分かること
| 必要なもの | Node.js、DeepSeek Harness (dsh)、Ollama(無料のローカルAIを使う場合) |
|---|---|
| 動かした環境 | Ubuntu 24.04 のクラウドVM(GPU無し・4vCPU・RAM15GB、画面表示なしのヘッドレス環境)、Node.js 22、Playwright(Chromium)で操… |
| 日本語 | 日本語で使うときの注意あり(下に書いた) |
| 確認日 | 2026-10-20(この日に実際に動かした) |
AIエージェントに作業を頼んでいる間、画面はだいたい無言で止まったままです。dsh-pet は、DeepSeek が出しているAIコーディングエージェント本体「DeepSeek Harness(dsh)」の画面に、常駐の小さなキャラクターを置くプラグインです。普段は待機アニメで呼吸したり居眠りしたりしているだけですが、ドラッグして投げたり、右クリックのメニューから動作を選んだり、セッションが「考え中」「作業中」になるとペット側も反応したり、外部のプログラムからHTTP経由で台詞を言わせたりできます。
今回はコマンドラインから dsh 本体と dsh-pet を入れ、無料のローカルAI(Ollama の qwen2.5:1.5b)につないで、チャットでの反応・右クリックメニューの動作・ドラッグ&投げの物理・外部からのHTTP API操作までひととおり試しました。使っているのは画面表示のないクラウドのLinux環境で、デスクトップ版(Electron)の透明ウィンドウは確認できていません。「①素材を作る配方 → ②AIで動画を生成する仕組み → ③プラグイン本体」という三点セットのうち、自分で新しいペットの絵を作る部分(②)までは試していません。
DSH本体ごとコマンドラインで入れる
dsh-pet は単体では動かず、先に「DeepSeek Harness(dsh)」本体が要ります。README の「快速开始(安装插件)」のうち、画面を持たないサーバーでも使える dsh web(ブラウザ版)のルートを選びました。Node.js が入ったパソコンのターミナルで、まず dsh 本体を入れます。
npm install -g @deepseek-ai/dsh pnpm
dsh --version
0.2.1-rc.2
続けて dsh-pet を追加します。
dsh plugin --profile web add dsh-pet
dsh: initialized profile web at /root/.dsh/profiles/web
Downloading dsh-pet@0.3.7: 0.00 B/62.49 MB
Packages: +11
+++++++++++
Progress: resolved 11, reused 0, downloaded 11, added 11, done
[WARN] Issues with peer dependencies found. Run "pnpm peers check" to list them.
Done in 597ms using pnpm v12.14.0
数秒でインストールが終わります。Web版を起動すると、専用のURLが出ます。
dsh web --no-open
dsh web: http://127.0.0.1:3080/?token=jUFsvys--d91JCyGhq6XpeifoL31TZk-aa4VBwGD6X4
このターミナルは開いたままにします(閉じると dsh が止まります)。末尾の ?token=… は、自分以外が同じ画面を開けないようにする合言葉付きのURLなので、省かずそのままブラウザに貼って開きます。
開いた瞬間からペットがいる
URLを開くと、プラグインを何も設定していないのに、画面の右上角にもうペットが立っています。

README の「兼容性」節には、Linuxで画面表示(DISPLAY)が無い環境ではデスクトップ版(Electron の透明ウィンドウ)が自動的にスキップされ、ブラウザ側の表示だけが出る、とはっきり書かれています。今回のクラウド環境もまさにその条件なので、これはエラーではなく想定どおりの動きです。デスクトップに画面がある読者の場合は、このあとブラウザとは別にもう1体、デスクトップの最前面にも透明ウィンドウで同じペットが出るはずですが、そちらは今回確認できていません。
ペットは何もしなくても、待機アニメで呼吸したり、時々目を閉じてうとうとしたりします。設定は「More」→「Settings」→「Pet Config」から変えられます。

名前(既定は「蓝毛小女仆」)・大きさ・表示位置(四隅+オフセット)・表示先(ブラウザ/デスクトップ/両方)・物理演出の強さ(重力・跳ね返り)などをここで変更できます。「Balance」(余額表示)・「Whisper」(独り言)・「Work status」(作業状況の反応)はそれぞれオン・オフできるチェックボックスです。
無料のローカルAIをつなぐ
チャットへの反応や独り言を生成させるには、AIモデルが要ります。費用をかけないため、Ollama で無料のローカルAI(qwen2.5:1.5b、約1GB)を用意しました。
curl -fsSL https://ollama.com/install.sh -o install_ollama.sh
sh install_ollama.sh
このサンドボックスには展開用の zstd が最初から入っていなかったため、1回目は「requires zstd for extraction」で失敗し、apt-get install -y zstd を実行してから入れ直しました。
ollama serve
ollama serve は立ち上げたままにしておく常駐コマンドです。別のターミナルでモデルを取得します。
ollama pull qwen2.5:1.5b
dsh の画面では、「More」→「Settings」→「Models」→「Add model provider」→「Custom model API」で、Provider ID(local-ollama)・Base URL(http://127.0.0.1:11434/v1)・API protocol(OpenAI Chat Completions)を入れ、API key欄には適当な文字列(Ollamaはキー不要ですが、空のままだと dsh 側が「No API key for provider」で弾くため)を入れて、「Fetch available models」を押すと qwen2.5:1.5b を自動で見つけて追加できました。

チャットを送るとペットが反応する
ワークスペース(作業用フォルダ)を選び、モデルに qwen2.5:1.5b を選んで、日本語で短く話しかけてみました。
こんにちは。簡単な自己紹介を一言でお願いします。
送信した3秒後には、ペットの頭上に「正在梳理接下来要做什么」(次に何をするか整理中、という意味の中国語)という吹き出しが「?」マークと一緒に出てきました。

セッション側に出ている「Deep diving for Ns」(Nは経過秒数、作業を深掘り中という意味の進行中表示)と連動して、dsh-pet の「Work status」機能がちゃんとDSHのセッションイベントを拾って動いていることが見てわかります。32秒後に応答が完了しました(1 turns 2 steps・34 tok/s・4.2K tok)。返ってきたのは次の文(英語)でした。
You haven't set a specific goal or objective for your work. Before we continue,
could you please clarify what you intend to achieve or what task you would
like to accomplish? This information will help us tailor our assistance
appropriately.
自己紹介ではなく目標確認が返ってきたのは、このモードがコーディング作業向けのエージェントモードとして会話を扱っているためで、小さなローカルモデルだとこうした食い違いが起きやすいようです。
右クリックメニューで動作を選ぶ
ペットを右クリックすると、「碎碎念(独り言)」「对话(会話)」「回到初始位置(初期位置に戻る)」「动作(動作)」というメニューが出ます。「动作」にカーソルを合わせると、さらに「待机(待機)」「转向(向きを変える)」「拖拽(ドラッグされた時の反応)」「点击回应(クリックした時の反応)」「移动(歩く・移動)」「小动作(ちょっとした仕草)」「玩耍(遊ぶ)」「吃什么(何を食べるか)」「时节(季節もの)」「文字(文字で演出)」「余额档位(残高の段階ごとの演出)」「碎碎念(独り言)」「工作状态(作業状況)」という13個のカテゴリが並び、それぞれにさらに具体的な動作の一覧があります。

「小动作」の中から「女仆屈膝礼仪」(メイドのお辞儀)を選ぶと、実際にペットが膝を曲げたポーズに変わりました。ひとつのカテゴリだけでも十数種類の動作名が並んでおり、見るだけでも作り込みの量がわかります。
ドラッグして投げる
ペットをマウスでつかんでドラッグすると、カーソルにくっついて動きます。

途中でマウスを離すと、慣性で弧を描いて飛び、着地した場所でペットの名前(Pet Configで設定した名前)が一瞬表示されました。README にある「拖拽甩抛反弹(ドラッグして放り投げると跳ね返る)」という説明どおりの動きが、実際に確認できました。
外部のプログラムから動かす(HTTP API)
dsh-pet は /dsh-pet-7340 というパスで、自分自身をHTTPで外から操作できる口を開けています(127.0.0.1 のみで認証なし)。ターミナルから直接叩いて試しました。
まず現在の状態を読みます。
curl -sS http://127.0.0.1:3080/dsh-pet-7340/state
{
"sections": {
"balance": {
"counter": 1792480943700,
"data": {
"ok": false,
"provider": "deepseek-official",
"reason": "credential-missing"
}
},
"workStatus": {
"counter": 1792481777514,
"data": {
"state": null,
"task": null
}
},
独り言を生成させるAPIを呼ぶと、ローカルモデル経由で新しい一言が作られ、state の中身が変わります。
curl -sS -X POST http://127.0.0.1:3080/dsh-pet-7340/whisper?pet=main
{"ok":true}
任意のテキストをその場でペットに言わせる broadcast も試しました。
curl -sS -X POST "http://127.0.0.1:3080/dsh-pet-7340/broadcast?pet=main" \
-H 'Content-Type: application/json' -d '{"text":"tameshita検証テスト中"}'
{"ok":true}
直後にブラウザを開くと、指定した日本語の文がそのまま吹き出しに出ていました。

動作を直接再生する anim も、ロックを取らずに呼ぶだけで通りました。
curl -sS -X POST "http://127.0.0.1:3080/dsh-pet-7340/anim?pet=main" \
-H 'Content-Type: application/json' -d '{"name":"悠闲哼歌"}'
{"ok":true}
一方、README と同じリポジトリの API.md に載っている「占用锁(ロック)」と「原生抛掷(API経由の投げ)」の2つのエンドポイントは、今回npmから入れた公開版(0.3.7)では次のエラーになり、動きませんでした。
curl -sS -X POST "http://127.0.0.1:3080/dsh-pet-7340/lock?pet=main&surface=web" \
-H 'Content-Type: application/json' -d '{}'
dsh-pet: expected /dsh-pet-7340/thumb/<petId>/<file>
GitHub上のドキュメントには詳しい仕様が書かれているので、設計自体は進んでいるものの、公開パッケージにはまだ反映されていないようです。ロックを使わない他のAPI(whisper・anim・broadcastなど)は、ドキュメントどおり「ロック無しでも今まで通り動く」仕様のまま問題なく使えました。
確認した環境
画面表示のないクラウドのLinux環境(Ubuntu 24.04、GPU無し)で、ブラウザは Playwright 経由の Chromium を使いました。README にはWindows/Linux/macOSのデスクトップ版(Electron)にも対応とありますが、今回は画面が無い環境だったため、デスクトップ版の透明ウィンドウ表示そのものは確認できていません。README の「无头 / 无桌面环境」節の記述どおり、デスクトップ側は自動的にスキップされ、ブラウザ側の表示だけで一通りの機能(アニメ・物理演出・チャット連動・HTTP API)を確かめられました。
まとめ
dsh-pet は、AIコーディングエージェントの画面に常駐させる、作り込みの深いデスクトップペットでした。待機アニメだけでも複数種類、右クリックメニューからだけでも十数種類以上の具体的な動作を選べ、セッションの進行状況(考え中・作業中・完了)にも反応します。ドラッグして投げる物理演出も実際に動き、外部のプログラムから台詞を言わせたり動作を再生させたりするHTTP APIも、一部(ロック・API経由の投げ)を除いて使えました。
AIエージェントに作業を任せている間、画面がただ止まっているのが味気ないと感じる人には、見ていて飽きない工夫がされています。一方で、これはあくまで DeepSeek Harness というプレビュー版のAIエージェントに追加するプラグインなので、dsh 本体を普段使いしていない人がこれだけのために導入する決め手にはなりにくいでしょう。独り言やチャットの返答は既定では中国語の人格設定で生成されるため、日本語でキャラクターを動かしたい場合は設定ファイルの書き換えが必要になる点も踏まえておくとよさそうです。