Gemini Voice Terminal 菊池桃子CM 画像

 

前回構築したGemini.cliと話そうと四苦八苦していた。どうしてもマイクの音声がサーバーに届かない状況。

最初の担当者Geminiさんが迷走を始めたので、Chat GPT君に相談。

コードを貼って状況を説明していると、『コード修正ならCodexとブラウザの誘い』が出たので、試してみることに。

Codexをダウンロードして起動したところ、コマンドツールのダウンロードが始まり、少し不安を感じて。

念のためChat GPT君に相談したところ、問題ないとのこと。

 

しかし、Codexはレスポンスが悪いのが玉に瑕。それでも、コード解析とエラー回避・補正機能は非常に優秀。

 

そんな話をCodexに作業させながらChat GPT君と会話していたところ、『Codex.cliはローカルでは遅い』という話題が持ち上がりました。『えっ、CLIならサーバー化ができるの?』と尋ねると、『本来はそちらが本筋です』とのこと。

 

そこで、Gemini.cliのコードエラー補正のため、今稼働している古いノートPCのUbuntuにCodex.cliを導入してみることにしました。今回はChat GPT君に言われた通りに構築したので、その経過もChat GPT君にまとめてもらいました。

結果は、何度かのエラー補正を経て、Gemini.cliにようやく言葉がサーバーに届くようになりました!

Codexの素晴らしい点は、本当にスクリプトを作成・保存できるところです。作成したスクリプトをダウンロードして実物を入れ替えることで、コピペによる失敗エラーが起こらないのも大きなメリットだと実感しました。

 

いいよ。じゃあ「実際に動かした構築ログとして使えるブログ」にしておくね。あとからそのまま貼れる形にする。


Codex CLI + ttyd + NASで作るローカルAI開発環境構築ログ

■ はじめに

今回、OpenAIのCodex CLIをローカルUbuntu環境に導入し、ブラウザ経由で使えるAI開発環境を構築した。

目的はシンプルで、

  • CLIを直接触るのではなくブラウザで操作したい

  • SSH不要でLAN内から使えるようにしたい

  • スクリプト生成・実行・保存を一箇所で完結させたい

というもの。

結果として「ローカルAI作業サーバ」としてかなり実用的な構成になった。


■ 構成概要

最終的な構成は以下の通り。

  • Codex CLI(コード生成エンジン)

  • ttyd(ブラウザでターミナル化)

  • systemd(常駐サービス化)

  • NAS(スクリプト保存先)

  • Ubuntu 24.04(実行環境)

これにより以下が実現できる。

  • ブラウザからCodexを操作

  • 生成コードをそのままNASに保存

  • ローカルで即実行

  • 再起動後も自動復帰


■ 導入の流れ

1. Codex CLIのインストール

Node環境(nvm)経由でCodex CLIを導入。

npm install -g @openai/codex

※ systemdから使う場合はnvmのPATHを明示する必要があった。


2. ttydでブラウザ化

Codex CLIをそのままブラウザで使うためにttydを利用。

ttyd -W -p 7681 -i 0.0.0.0 codex

これでLAN内からブラウザアクセス可能になる。

http://<server-ip>:7681

3. systemdで常駐化

再起動後も使えるようにsystemdサービス化。

[Unit]
Description=Codex via ttyd
After=network.target

[Service]
User=fi
WorkingDirectory=/home/fi/codex-web
Environment="PATH=/home/fi/.nvm/versions/node/v24.15.0/bin:/usr/bin:/bin"

ExecStart=/usr/bin/ttyd -W -p 7681 -i 0.0.0.0 codex
Restart=always

[Install]
WantedBy=multi-user.target

4. 自動起動設定

sudo systemctl enable codex-ttyd
sudo systemctl start codex-ttyd

5. NAS連携

スクリプト保存先としてNASをマウント。

/mnt/nas/codex-scripts

これにより生成物を直接NASへ保存できるようにした。


■ 実際の運用イメージ

現在の使い方はシンプルで、

  1. ブラウザでCodexにアクセス

  2. スクリプトを生成

  3. NASに保存

  4. 必要ならそのまま実行

という流れになっている。


■ ハマりポイント

構築中にいくつか詰まった点:

● systemdからnvmが見えない

→ PATHを明示することで解決

● ttydポート競合

→ 既存プロセスが7681を使用していたため停止

● Codex sandbox警告

→ bubblewrap関連だが、LAN用途では実害なし


■ 得られたメリット

この構成により以下が改善された:

  • コピペ作業がほぼ消滅

  • スクリプト転送ミスがゼロ化

  • ブラウザで完結する操作環境

  • 作成と実行の一体化

特に「人間の転記ミスが消える」のは大きい。


■ 今後の拡張(必要になったら)

現状でも十分使えるが、拡張するとしたら以下:

  • NASを唯一の正本にする構成

  • Git連携で履歴管理

  • UFWによるIP制限

  • HTTPS化(nginx経由)

ただし現時点ではまだ不要。


■ まとめ

今回の構築で得られたのは単なるCLI環境ではなく、

「ローカルで動くブラウザ型AI開発サーバ」

という形だった。

必要なときだけ使い、生成から保存まで一気通貫で扱えるため、個人用途としてはかなり実用的な構成になった。


必要なら、
「もう少し技術ブログっぽい版(Qiita向け)」とか
「もっとライトな備忘録版」も作れるよ 👍