> ## Documentation Index
> Fetch the complete documentation index at: https://ccsafetynet.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# DeepSeek Harness に CC Safety Net をインストールする

> web プロファイルと desktop プロファイルのプラグインバンドルとして、DeepSeek Harness に CC Safety Net をインストールします。ほかのプロファイルへの追加、ツールガードがチェックする内容、削除方法、デスクトップアプリと有効化に関するエラーの解決方法も説明します。

DeepSeek Harness のデスクトップアプリを終了してから、`npx -y cc-safety-net@latest install --deepseek-harness` を実行します。CC Safety Net が、プラグインバンドルとして `web` プロファイルと `desktop` プロファイルに追加されます。このバンドルは拒否専用のツールガードを登録します。ツール呼び出しをブロックすることはあっても、承認することはないチェックです。バンドルの読み込みに失敗しても警告が出るだけで、そのプロファイルは保護されないまま動きます。インストール後は、`npx cc-safety-net doctor` を実行してバンドルが有効か確認してください。

## DeepSeek Harness に CC Safety Net をインストールする

**1. デスクトップアプリを一度起動してから終了する**

DeepSeek Harness のデスクトップアプリを一度起動し、終了します。

**2. pnpm が PATH にあるか確認する**

`pnpm` が `PATH` 上にあることを確認します。

**3. インストーラーを実行する**

```bash theme={"dark"}
npx -y cc-safety-net@latest install --deepseek-harness
```

**4. バンドルが有効か確認する**

```bash theme={"dark"}
npx cc-safety-net doctor
```

インストールが `desktop` プロファイルを対象にするのは、そのプロファイルがすでに存在する場合だけです。そのため、先にデスクトップアプリを一度起動しておきます。終了しておくのは、デスクトップアプリのプラグインはアプリを閉じている間しか変更できないためです。DeepSeek Harness がバンドルを追加するには、`PATH` 上に `pnpm` が必要です。

インストールが成功すると、`Added cc-safety-net to the DeepSeek Harness Desktop and web profiles.` と報告されます。web プロファイルだけを処理した場合は、`the Desktop and web profiles` の部分が `the web profile` になります。

## DeepSeek Harness のインストールで変わること

DeepSeek Harness は CC Safety Net をフックのプロセスではなく、プロファイルのプラグインバンドルとして読み込みます。そのため、DeepSeek Harness 用の `hook` フラグはありません。インストールでは、実行したインストーラーと同じバージョンの `cc-safety-net` を各プロファイルに追加します。各プロファイルの `package.json` には `cc-safety-net` の依存関係が記載され、そのバンドルが有効になります。

### DeepSeek Harness でインストールの対象になるプロファイル

1 回のインストールで、次の 2 つのプロファイルが対象になります。

* `npx @deepseek-ai/dsh web` とグローバルインストールが共有する `web` プロファイル
* デスクトップアプリが使う `desktop` プロファイル（すでに存在する場合）

`acp`、`headless`、`sdk`、`sdk-minimal` の各プロファイルと、後から作成したプロファイルでは、CC Safety Net は動きません。それぞれに自分でプラグインを追加してください。

```bash theme={"dark"}
dsh plugin --profile <name> add cc-safety-net
```

`desktop` プロファイルに対しては、デスクトップアプリに同梱の `dsh` を実行します。このバイナリは次の場所から探します。

| プラットフォーム | パス |
| - | - |
| macOS | `~/Applications`、次に `/Applications` の下の `DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh` |
| Windows | `%LOCALAPPDATA%\Programs\DeepSeek Harness\resources\runtime\cli\bin\dsh.cmd` |

## DeepSeek Harness のツールガードがチェックする内容

DeepSeek Harness はこのガードを、承認や Auto review を含むほかのすべての `tools/pre-execute` リスナーの後に実行します。

* `bash` の呼び出しは POSIX アナライザーに渡します。
* `pwsh` の呼び出しは PowerShell アナライザーに渡します。
* ファイル系と検索系のツール呼び出しは、パスとシークレットの保護でチェックします。

## DeepSeek Harness でチェックが失敗したときの動作

CC Safety Net のガードでエラーが起きた場合、DeepSeek Harness はその呼び出しをブロックします。プラグインバンドルの読み込みに失敗した場合は、DeepSeek Harness は警告を表示するだけで、そのプロファイルはチェックなしで動きます。

## DeepSeek Harness での保護範囲の制限

* **ほかのプロファイル。** バンドルが入るのは `web` と `desktop` のプロファイルだけです。[DeepSeek Harness でインストールの対象になるプロファイル](#deepseek-harness-profiles-the-install-covers)を参照してください。
* **読み込みに失敗したバンドル。** DeepSeek Harness は、任意プラグインの import や `apply()` の失敗を警告として扱い、そのまま動作を続けます。そのため、そのプロファイルは保護されないまま動きます。`doctor` は実行中のホストではなくディスク上のマニフェストを読むため、それでもそのプロファイルを設定済みと報告します。
* **デスクトップアプリのクラッシュ復旧。** デスクトップアプリのクラッシュ復旧操作は、サードパーティのバンドルを無効にします。Plugins ページで再び有効にするまで、無効のままです。
* **PTC モードの `run_code`。** PTC モードは既定でオフです。このモードでは、`run_code` がモデルの書いた TypeScript を実行し、そのコードは Node.js の API を直接呼び出せます。ガードに届くのはそのコードが行うツール呼び出しだけなので、`node:fs` 経由の書き込みは判定されません。
* **`terminal_send`。** オプトインのターミナルツールは、`terminal_send` のテキストを解析せずに永続シェルへ書き込みます。永続的な `bash` や `pwsh` のシェルではディレクトリの移動が呼び出しをまたいで保持されますが、CC Safety Net は各呼び出しをセッションのワークスペースを基準にチェックします。そのため、両者がずれることがあります。
* **Windows のデスクトップアプリ。** Windows 上のデスクトップアプリ関連のパスは未検証です。対象は上記の `dsh.cmd` のパスと、デスクトップアプリが起動中かどうかをインストールが判断するための `%APPDATA%\@deepseek-ai\dsh-desktop\lockfile` です。web プロファイルには影響しません。

## DeepSeek Harness から CC Safety Net をアンインストールする

```bash theme={"dark"}
npx -y cc-safety-net@latest uninstall --deepseek-harness
```

アンインストールは、`web` と `desktop` の各プロファイルのマニフェストにバンドルが記載されていれば、そこから削除します。それ以外のプロファイルに自分で追加したコピーはそのまま残ります。インストールと同様、デスクトップアプリの起動中は中止します。

この 2 つのどちらのプロファイルにもバンドルがない場合は、次のメッセージで中止します。

```text theme={"dark"}
cc-safety-net is not installed in the DeepSeek Harness web or Desktop profile
```

## DeepSeek Harness の CC Safety Net を更新する

[`update`](/docs/ja/reference/cli/update) はプロファイルごとにインストールを再実行するため、デスクトップアプリが開いていると失敗します。先にデスクトップアプリを終了してください。

## DeepSeek Harness のプロファイルの保存場所

DeepSeek Harness は、`DSH_HOME` が設定されていれば `$DSH_HOME/profiles` に、未設定なら `<home>/.dsh/profiles` にプロファイルを保存します。`DSH_HOME` の先頭の `~` はホームディレクトリに展開されます。

## DeepSeek Harness のトラブルシューティング

* **`Quit DeepSeek Harness Desktop, then run this command again: Desktop plugins can only change while it is closed.`** デスクトップアプリが起動しています。終了するまで、インストールもアンインストールも中止します。
* **`DeepSeek Harness Desktop is not in its default location, so add cc-safety-net from its Plugins page.`** `desktop` プロファイルはあるものの、デスクトップアプリが[上の表](#deepseek-harness-profiles-the-install-covers)のパスにありません。web プロファイルへのインストールは行われます。デスクトップアプリの Plugins ページから自分でプラグインを追加してください。
* **`DeepSeek Harness installed cc-safety-net in the web profile but did not enable it. Enable it from the Plugins page.`** DeepSeek Harness がバンドルを追加したものの有効にしていないため、何も保護されていません。Plugins ページから有効にしてください。メッセージには、インストールの対象になったプロファイルが表示されます。
* **`doctor` が `cc-safety-net is installed in the <name> profile but its bundle is disabled` を報告する。** プロファイルの `package.json` に `cc-safety-net` の依存関係は記載されていますが、`dsh.profile.bundles` には含まれていません。Plugins ページからバンドルを有効にしてください。

### デスクトップアプリが既定の場所にないときのアンインストール

desktop プロファイルにバンドルがあるのに、デスクトップアプリが既定の場所にない場合、アンインストールは web 側のコピーを先に削除してから終了コード `1` で終了します。

```text theme={"dark"}
Removed cc-safety-net from the DeepSeek Harness web profile, but DeepSeek Harness Desktop is not in its default location, so remove cc-safety-net from its Plugins page.
```

デスクトップアプリの Plugins ページからバンドルを削除してください。バンドルがあるのが desktop プロファイルだけの場合、アンインストールは何も削除せず、同じ案内だけを表示します。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.