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

# CLI

export const SignupCTA = ({children}) => {
  return <div className="flex flex-wrap items-center gap-4 p-5 rounded-lg border border-gray-200 dark:border-gray-700 my-6" style={{
    background: "linear-gradient(135deg, rgba(0, 97, 213, 0.06), rgba(0, 97, 213, 0.02))"
  }}>
      <div className="flex-1 text-sm leading-relaxed text-gray-700 dark:text-gray-300" style={{
    minWidth: "280px"
  }}>
        {children}
      </div>
      <div className="flex flex-col items-center gap-2">
        <a href="https://account.box.com/signup/developer#ty9l3" className="signup-cta-button inline-flex items-center whitespace-nowrap px-5 py-2 text-sm font-semibold text-white no-underline">
          {translate("Get started for free")}
        </a>
        <a href="https://account.box.com/developers/console" className="signup-cta-login text-xs text-gray-500 dark:text-gray-400 no-underline whitespace-nowrap">
          {translate("Already have an account? Log in")}
        </a>
      </div>
    </div>;
};

export const MultiRelatedLinks = ({sections = []}) => {
  if (!sections || sections.length === 0) {
    return null;
  }
  return <div className="space-y-8">
      {sections.map((section, index) => <RelatedLinks key={index} title={section.title} items={section.items} />)}
    </div>;
};

export const RelatedLinks = ({title, items = []}) => {
  const getBadgeClass = badge => {
    if (!badge) return "badge-default";
    const badgeType = badge.toLowerCase().replace(/\s+/g, "-");
    return `badge-${badge === "ガイド" ? "guide" : badgeType}`;
  };
  if (!items || items.length === 0) {
    return null;
  }
  return <div className="my-8">
      {}
      <h3 className="text-sm font-bold uppercase tracking-wider mb-4">{title}</h3>

      {}
      <div className="flex flex-col gap-3">
        {items.map((item, index) => <a key={index} href={item.href} className="py-2 px-3 rounded related_link hover:bg-[#f2f2f2] dark:hover:bg-[#111827] flex items-center gap-3 group no-underline hover:no-underline border-b-0">
            {}
            <span className={`px-2 py-1 rounded-full text-xs font-semibold uppercase tracking-wide flex-shrink-0 ${getBadgeClass(item.badge)}`}>
              {item.badge}
            </span>

            {}
            <span className="text-base">{item.label}</span>
          </a>)}
      </div>
    </div>;
};

export const Link = ({href, children, className, ...props}) => {
  const localizedHref = localizeLink(href);
  return <a href={localizedHref} className={className} {...props}>
      {children}
    </a>;
};

Box CLIにより、Boxをターミナルで使用できるようになります。エージェント型ツールやハーネスとの連携により、コンテンツの管理、タスクの自動化、スクリプト、ツール、AIエージェントへのBoxの統合が可能になります。

[Boxユーザーとしてログイン](#log-in-as-box-user)すると、スコープはファイルおよびフォルダ、AI、Signに制限されます。追加のスコープが必要な場合は、代わりに[Box Platformアプリを使用](#use-a-box-platform-app)してください。

<SignupCTA>
  Box CLIのインストールとアカウントへの接続は数分で完了します。作業の開始に必要なのは、無料のDeveloperアカウントだけです。
</SignupCTA>

## クイックスタート

CLIは、任意のプラットフォーム (Linux、Windows、macOSなど) で実行できます。[Node.js](https://nodejs.org/) 22以降をインストールしておく必要があります。

以下のコマンドでは`box`を使用します。`npm install box`でインストールした場合は、先頭に`npx `を付けます (例: `npx box login`)。

### 手順1: CLIのインストール

推奨される方法は、CLIとBox Node SDKをバンドルした[`box`](/guides/tooling/box-npm-package) npmパッケージのインストールです。

```bash theme={null}
npm install box
```

インストール後、`npx box`で任意のCLIコマンドを実行します。

```bash theme={null}
npx box --help
```

<Tip>
  **代替方法はグルーバルインストールです。**`box`コマンドを直接`PATH`で使用する場合は、代わりにスタンドアロンのCLIパッケージをインストールします。

  ```bash theme={null}
  npm install --global @box/cli
  ```
</Tip>

### 手順2: CLIの認証

ターミナルで次のコマンドを実行します。

```bash theme={null}
box login
```

<a id="log-in-as-box-user" style={{scrollMarginTop: "6rem"}} />

##### 1. Boxユーザーとしてログインする (OAuth)

最も速く開始できる方法です。ファイルとフォルダの操作、AI、Signのみをサポートする、あらかじめ設定されているBoxアプリケーションを使用します。

ブラウザに表示された \[**Boxへのアクセスを許可**] ボタンを選択します。

認証が正常に完了したら、コマンドを実行する準備は完了です。

<a id="use-a-box-platform-app" style={{scrollMarginTop: "6rem"}} />

##### 2. Box Platformアプリを使用する

このオプションでは追加の設定が必要ですが、スコープや権限を構成できます。

1. [開発者コンソール][devconsole]に移動して、アプリケーションを選択または作成します。
2. アプリケーションの \[**構成**] セクションで、以下を実行します。
   * **標準OAuth 2.0**を使用していることを確認します。
   * \[**リダイレクトURI**] を`http://localhost:3000/callback`に設定します。
   * 目的の<Link href="/guides/api-calls/permissions-and-errors/scopes">スコープ</Link>を選択します。
   * **クライアントID**と**クライアントシークレット**をコピーします。
3. ページ上部にある \[**変更を保存**] をクリックします。
4. ターミナルウィンドウに戻り、求められたら**クライアントID**と**クライアントシークレット**を入力します。
5. ブラウザに表示された \[**Boxへのアクセスを許可**] ボタンを選択します。

認証が正常に完了したら、コマンドを実行する準備は完了です。

<Info>
  クライアントIDとクライアントシークレットのプロンプトをスキップするには、`box login --platform-app`を使用します。
</Info>

##### 3. ヘッドレス環境 (ブラウザのない場合)

リモートサーバーなどブラウザのないマシンを使用している場合は、`--code`フラグを使ってコードを手動で入力します。一連の手順については、<Link href="/guides/cli/headless-login">ヘッドレスログイン</Link>を参照してください。

```bash theme={null}
box login --code
```

### 手順3: 最初のコマンドの実行

構成が正常に完了したことを確認するには、次のコマンドを入力します。

```bash theme={null}
box users:get me
```

認証が成功すると、CLIはBoxユーザーアカウントに関する情報を返します。

```json theme={null}
Type: user
ID: '0123456789'
Name: Aaron Levie
Login: example@box.com
Created At: '2020-01-01T09:45:01-07:00'
Modified At: '2021-03-01T09:30:05-07:00'
Language: en
Timezone: America/Los_Angeles
Space Amount: 999999999999999
Space Used: 6291500
Max Upload Size: 16106127360
Status: active
Job Title: ''
Phone: ''
Address: example+user@box.com
Avatar URL: ''
Notification Email: []
```

<Tip>
  CLIでは、<Link href="/guides/hubs-api">Box Hubs</Link>のコマンドをサポートしています。ターミナルから直接、HubやHub内の項目を管理できます。利用可能なすべての操作を確認するには、`box hubs --help`を実行します。
</Tip>

## ヘルプの利用

すべてのCLIコマンドは`box`で始まります。ヘルプを表示するには、任意のコマンドに`--help`を追加します。`box --help`を実行すると、使用可能なトップレベルのコマンドがすべて表示されます。

コマンドの全一覧と使用方法に関する情報については、[GitHubリポジトリ][github]を参照してください。

サポートされているコールバックポートは`3000`、`3001`、`4000`、`5000`、`8080`です。変更するには`--port`を使用します。

## Box APIを使用するための代替方法

* <Link href="/guides/authentication/jwt">サーバー認証</Link>方法を使用するには、<Link href="/guides/cli/cli-with-jwt-authentication/jwt-cli">JWT認証を使用するCLI</Link>のガイドを参照してください。
* <Link href="/guides/authentication/client-credentials">CCG認証</Link>方法を使用するには、[box configure][ccg-page]ガイドを参照してください。

## 追加情報

Box CLIの詳細については、以下のページを参照してください。

* すべての[コマンド][commands]を確認する。
* [トークンのキャッシュ][cache]の設定を確認する。
* [オートコンプリート][ac]の設定を確認する。
* CLIコマンドを使用して一括操作を行うには、[CLIの一括コマンド][bulk]ガイドを参照してください。

[cache]: https://github.com/box/boxcli/blob/master/docs/configure.md#box-configureenvironmentsupdate-name

[ac]: https://github.com/box/boxcli/blob/master/docs/autocomplete.md

[commands]: https://github.com/box/boxcli#command-topics

[github]: https://github.com/box/boxcli#command-topics-1

[devconsole]: https://cloud.app.box.com/developers/console

<Info>
  Boxが提供するアプリケーションを介して送信されるAPIリクエストは課金対象ではありません。Box APIを使用してカスタムアプリケーションから送信されるリクエストは課金対象となります。
</Info>

## 高度な機能

このGitHubページには、上級CLIユーザーの参考となりそうなその他のガイドも用意されています。

* [オートコンプリートの設定][cli-autocomplete]
* [別のアプリの構成][cli-add-config]
* [アカウントの切り替え][cli-switch]
* [トークンのキャッシュ][cache]

[cli]: https://github.com/box/boxcli

[cli-autocomplete]: https://github.com/box/boxcli/blob/main/docs/autocomplete.md

[cli-switch]: https://github.com/box/boxcli/blob/main/docs/configure.md#box-configureenvironmentsswitch-user-userid

[cli-add-config]: https://github.com/box/boxcli/blob/main/docs/configure.md#box-configureenvironmentsadd-path

[cache]: https://github.com/box/boxcli/blob/main/docs/configure.md#box-configureenvironmentsupdate-name

[scripts]: https://github.com/box/boxcli/tree/main/examples

[ccg-page]: https://github.com/box/boxcli/tree/main/docs/configure.md#box-configureenvironmentsadd-path

[bulk]: https://github.com/box/boxcli/blob/main/docs/Bulk%20actions/README.md
