コンテンツにスキップ
HTTPコマンドAPI
WebSocketストリーミング
マルチプレイヤーセッション
50以上のURLパラメーター
5つのシェル環境
ディスプレイ自動マッピング
19 APIエンドポイント
永続セッション
HTTPコマンドAPI
WebSocketストリーミング
マルチプレイヤーセッション
50以上のURLパラメーター
5つのシェル環境
ディスプレイ自動マッピング
19 APIエンドポイント
永続セッション
HTTPコマンドAPI
WebSocketストリーミング
マルチプレイヤーセッション
50以上のURLパラメーター
5つのシェル環境
ディスプレイ自動マッピング
19 APIエンドポイント
永続セッション
HTTPコマンドAPI
WebSocketストリーミング
マルチプレイヤーセッション
50以上のURLパラメーター
5つのシェル環境
ディスプレイ自動マッピング
19 APIエンドポイント
永続セッション
TerminalKitサービス

ターミナル

HTTPSエンドポイントとして公開された永続Linuxシェル。API経由でコマンドを実行し、任意のブラウザから接続し、チームとセッションを共有。

クイックスタート

# トークンを取得

$ curl -X POST \

https://abc123-def456-terminal-1.node-us-1.containers.hoody.com/api/v1/terminal/execute \

-H "Authorization: Bearer $TOKEN" \

-d '{"command":"echo Hello from Hoody!"}'

> { "command_id": "42", "status": "running" }

 

# 最初のコマンドを実行

$ curl \

https://abc123-def456-terminal-1.node-us-1.containers.hoody.com/api/v1/terminal/result/42 \

-H "Authorization: Bearer $TOKEN"

> { "status": "completed", "output": "Hello from Hoody!", "exit_code": 0 }

 

# URLを共有 — 誰でも接続できます

https://abc123-def456-terminal-1.node-us-1.containers.hoody.com

URL の構造

URL がインターフェース

ターミナルにはそれぞれ予測可能なアドレスがひとつあります。左から右へ読めば、どのサービス、インスタンス、コンテナと話しているのかが正確にわかります。

terminal サービス URL
https://abc123-def456-terminal-1.node-us-1.containers.hoody.com
abc123

プロジェクト

プロジェクト ID。

def456

コンテナ

コンテナ ID。

terminal

サービス

どの Kit サービスか ── terminal、files、display……

1

インスタンス

複数起動できます: terminal-1、terminal-2、terminal-3。

node-us-1

サーバー

コンテナが動いているノード。

URL がインターフェースです。ポートも設定もネットワーク構築も不要。

HTTP API

すべてのコマンドが API 呼び出し

実行は非同期です。コマンドを投げると ID が返り、あとから結果を読みます ── あるいは WebSocket でライブにストリーミングします。

1実行する
POST /api/v1/terminal/execute
-d '{"command": "npm test"}'
{
"command_id": "42",
"status": "running"
}

コマンドを POST します。すぐに command_id と status: running が返ります。

2結果を読む
GET /api/v1/terminal/result/42
{
"command_id": "42",
"status": "completed",
"output": "24 passed, 0 failed",
"exit_code": 0
}

result エンドポイントをポーリングして、まとめた出力と終了コードを取得します。

3またはライブにストリーミング
WS /api/v1/terminal/ws?terminal_id=1
> build started…
> compiling 42 modules
> 24 passed, 0 failed

WebSocket を開けば、ターミナルのフレームをリアルタイムで受け取れます。

機能

すべてが組み込み済み

すべての機能は設定ゼロですぐに利用可能。ターミナルはすぐに使える状態でデプロイされます。

Web ターミナル

ブラウザの中に本格的なターミナル

どんなデバイスでも URL を開くだけ ── スマホ、タブレット、ノート PC。Web UI はクエリパラメータだけで丸ごと設定できます: シェル、フォントサイズ、読み取り専用モード、タイトル、サイドパネル。

?shell=zsh?fontSize=16?readonly=true?title=Prod?panel=/docs

シェル選択

bash、zsh、fish、tmux、sh — URLパラメーターでシェルを切り替え。プリインストール済み。

自動化 API

キー入力を送り、テキストを貼り付け、画面が落ち着くのを待つ ── 対話的なプログラムを HTTP 越しに操作できます。

ターミナルスクリーンショット

API経由でターミナル状態をPNG、JPEG、GIFとしてキャプチャ。カラーとフォントサイズは設定可能。

ライブなセッション状態

作業ディレクトリ、シェル、履歴はセッションが生きている間は保持され、再接続後も残ります。

どんなサーバーにも SSH

リモートの SSH 接続としてセッションを開きます ── ホスト、ユーザー、キーをパラメータで指定。

HTTP API

19エンドポイント、フル制御

4つのドメイン:コマンド実行、セッション管理、WebSocket経由のライブストリーミング、システム監視。

コマンド実行

5 endpoints

curl -X POST .../terminal/execute -d '{"command":"npm test"}'

POST
/api/v1/terminal/executeコマンド実行(同期/非同期)
GET
/api/v1/terminal/result/{command_id}非同期結果のポーリング
POST
/api/v1/terminal/execute/{command_id}/abortコマンド履歴
POST
/api/v1/terminal/writePNG/JPEG/GIFとしてキャプチャ
GET
/api/v1/terminal/history/{terminal_id}アクティブセッション一覧

セッション管理

6 endpoints

curl .../terminal/sessions → [{ "terminal_id": "1", "shell": "bash" }]

GET
/api/v1/terminal/sessions新規セッション作成
POST
/api/v1/terminal/createセッション終了
DELETE
/api/v1/terminal/{terminal_id}ターミナルリサイズ
GET
/api/v1/terminal/rawセッションへの書き込み
GET
/api/v1/terminal/screenshotセッション状態
GET
/api/v1/terminal/openapi.jsonセッションへシグナル送信

ライブストリーミング

4 endpoints

WS .../terminal/ws — real-time terminal frames

WS
/api/v1/terminal/wsリアルタイムストリーム
POST
/api/v1/terminal/press出力バッファ読み取り
POST
/api/v1/terminal/pasteCPU、メモリ、ディスク、ネットワーク
POST
/api/v1/terminal/wait実行中プロセス

システム & メタ

7 endpoints

curl .../system/resources → { "cpu": 45.2, "memory": { ... } }

GET
/api/v1/terminal/healthPIDにシグナル送信
GET
/api/v1/system/resources環境変数
GET
/api/v1/system/processesシステム情報
GET
/api/v1/system/processes/{pid}生出力エクスポート
GET
/api/v1/system/portsリッスンしているポート
POST
/api/v1/system/process/signalPID にシグナルを送る
GET
/api/v1/system/displaysアクティブな X11 ディスプレイ
ユースケース

実際のワークフローのために構築

ターミナルは開発者と自動化のシナリオ全体をカバーします。各ユースケースは特定のAPIエンドポイントにマップされます。

  • 01

    リモート開発

    GET /terminal/ws

    ブラウザがあるあらゆるデバイスからコンテナにSSH接続。永続的なシェルアクセス。

  • 02

    AIエージェントオーケストレーション

    POST /terminal/execute

    エージェントがHTTP API経由でシェルコマンドを実行。ビルド、テスト、デプロイ — ターミナルAPIがエージェントに完全な制御を与える。

  • 03

    チームデバッグ

    GET /terminal/sessions

    マルチプレイヤーデバッグのためにターミナルURLをチームと共有。全員が同じ出力を見る。

  • 04

    GUIアプリケーション

    ?display=N

    ターミナルから任意のグラフィカルアプリケーションを起動。Firefox、VS Code、GIMP — terminal-NはdisplayNに自動マップ。

  • 05

    CI/CD統合

    GET /terminal/result/{id}

    ビルドステップの実行、テストの実行、アーティファクトのデプロイ — すべてHTTP経由。ターミナルをあらゆるCI/CDパイプラインに統合。

  • 06

    ライブモニタリング

    GET /system/resources

    API経由のリアルタイムCPU、メモリ、ディスク、ネットワーク統計。実行中プロセス一覧、シグナル送信。

探索を始めますか?

ターミナルはすべてのHoodyコンテナに付属する18のKitサービスの1つです。インストール不要、設定不要。

ドキュメントを読む