デフォルトで Codex CLI は永続的かつ自己更新される背景ダエモンをインストールします。

2026/10/13 3:29

デフォルトで Codex CLI は永続的かつ自己更新される背景ダエモンをインストールします。

RSS: https://news.ycombinator.com/rss

要約▶

日本語翻訳:

Codex CLI バージョン 0.157.0 以降、npm を介して Linux システム(WSL2 など)にインストールするユーザー向けに、対話型セッションを開始すると、ツールは永続的なバックグラウンドデモン (

codex app-server --managed-daemon
) を自動的に起動します。このデモンは
~/.codex
に約 374 MB の独立したプラットフォームパッケージをコピーし、そのバージョンをパッケージマネージャでインストールされた CLI と切り離し、ラッパーから固定された環境(例:
HTTPS_PROXY
)を保持します。バックエンドは起動後 5 分経過後にアップデートの有無をチェックし、以降隔 1 時間ごとにチェックを行います。また、60 秒のドレイン期間後にアクティブなターンを強制終了させます。さらに、
--remote
モードでのフックはセッションの作業ディレクトリではなくデモンの現在の作業ディレクトリを受け取り、生成されたプロセスがクライアントターミナルを特定する能力を失うという問題が発生します (#37537)。

ユーザーから大きな不満が生じているのは、メインのデモン (

codex app-server daemon stop
) を停止しても、アップデート処理 (
pid-update-loop
) が止まらず、手動での終結が必要となることです。そのため、ユーザーは
daemon_auto_start
をデフォルトでオプトインまたは明示的な同意を必要とするよう要望しています。自動開始を有効にしたままの場合には望ましい修正として、最後のクライアントが切断された時に終了し、パッケージマネージャ経由でインストールされている場合はコピーや自己アップデートを行わないことにすべきです。回避策としては、CLI コマンド (
codex features disable daemon_auto_start
,
codex app-server daemon stop
) を使用して機能を無効にし、手動でプロセスやファイルをクリーンアップする方法があります。今後の更新ではこれらの行動を是正し、ユーザーの制御を回復させるとともに、予期せぬリソース使用を防ぎ、npm パッケージの標準的なインストール慣行に沿うことを目指しています。

本文

Codex CLI 版本 0.157.0:守护进程行为分析与临时解决方案

📌 基本环境信息

  • 软件名称: Codex
  • CLI 版本:
    0.157.0
  • 安装方式:
    npm install -g @openai/codex
  • 运行环境: Linux (WSL2)

❓ 期望的新功能改进

用户希望调整以下默认行为,以优化 CLI 工具的直觉性和可控性:

  • 关闭自动启动守护进程: 将
    daemon_auto_start
    功能改为默认关闭(Opt-in 模式),或在启动前至少提示用户一次是否启用。
  • 后端版本解耦: 确保运行的是通过包管理器安装的本地二进制文件,而非被复制和自我更新的独立后端。
  • 动态环境适配: 后端应继承当前会话的环境变量(如
    HTTPS_PROXY
    ),而非保留首次启动时的环境变量。
  • 正确的路径传递: 在远程模式 (
    --remote
    ) 下,钩子应接收实际会话的工作目录 (cwd),而非守护进程的 cwd。

🚨 自版本 0.157.0 起触发的自动行为

开启交互式会话即会自动执行以下操作:

  • 启动持久化守护进程

    • 命令:
      codex app-server --managed-daemon
    • 特性: 独立运行,无 TTY 连接。
    • 生命周期: 关闭所有窗口后仍继续运行(PID 1),需手动执行
      codex app-server daemon stop
      或重启系统才能停止。
  • 复制平台包

    • 体积: 约 374 MB。
    • 内容: 包含
      codex
      ,
      codex-code-mode-host
      , 以及捆绑的
      bwrap/zsh/rg
      。
    • 路径: 复制到
      ~/.codex/packages/app-server-daemon/releases/<version>/
      。
    • 影响: 后端版本与 CLI 客户端版本解耦。即使更新 npm,后端仍停留在旧版本。
  • 自动更新器运行

    • 命令:
      codex app-server daemon pid-update-loop
    • 逻辑: 启动后 5 分钟首次检查,之后每小时检查一次,下载并自动重启服务。
    • 副作用:
      • 更新过程会终止当前活跃的对话轮次。
      • 清理预算耗尽 (60 秒) 后会强制结束会话。
      • 此行为目前无法禁用 (参见 Issue #40969)。
  • 环境变量与路径问题

    • 代理丢失: 即使每次调用都设置
      HTTPS_PROXY
      ,守护进程仍保留首个会话的环境变量,后续配置失效。
    • 工作目录错误:
      --remote
      模式下,钩子接收的是守护进程的 cwd,而非实际会话的 cwd (Issue #42457)。
    • 终端识别失效: App-server-daemon 启动的钩子无法识别客户端终端,导致面向终端的钩子失效 (Issue #37537)。

🛠 临时解决方案:禁用自动守护进程

为避免上述问题,建议立即执行以下操作组合来禁用相关功能:

# 1. 通过 Codex 命令禁用标志
codex features disable daemon_auto_start

# 2. 停止正在运行的 app-server 守护进程
codex app-server daemon stop

# 3. 强制终止残留的更新循环进程
pkill -f 'app-server daemon pid-update-loop' 
# 注意:仅执行 `daemon stop` 无法立即杀死该更新器进程 (延迟约 70 秒)

# 4. 清理复制的应用程序包目录
rm -rf ~/.codex/packages/app-server-daemon

效果: 执行上述操作后,新建的 TUI 会话将不再自动启动守护进程。


📋 相关 Issue 引用

  • #40969: Auto-update 强制终止活跃轮次且无法禁用
  • #41188: 关于支持外部管理的
    app-server-daemon
    可执行文件
  • #46468: NPM 更新 CLI 后守护进程版本不匹配及手动重启失效问题
  • #48050: Arch Linux 上使用包管理器安装时不再自动启动 (除非添加
    --no-daemon
    )
  • #42457: 远程模式下钩子获取错误的 cwd
  • #37537: App-server-daemon 钩子无法识别客户端终端

同じ日のほかのニュース

一覧に戻る →

2026/10/13 6:40

AI は道具です。それを巧みに使うには技術が必要です。

## 日本語翻訳: 本稿の核心的な論点は、大規模言語モデルは自律的な「自動化」ではなく、人間の技量が必要なツールであるというものである。これは、AI が独立した意思あるいは悪意を持って行動するという考え方を否定するものであり、ソフトウェアが「反逆する(rogue)」ように振る舞うなど、業界特有の成り行きや陰謀論的なナラティブに煽られておりやすい。物理的な器具が悪用され得るように、LLM もエンジニアリング上の制限によって予期せぬ出力を生み出すに過ぎず、エージェント性の喪失によるものではない。人間による判断が依然として中核をなすのは、ユーザーが盲目的に制御権を委ねるのではなく、フィードバックループ内で結果を検証し、プロンプトを見直し、変更を検証するからです。本稿は AI を記述するために使用される擬人化された言語を批判しており、「陰謀」などの用語は技術的な問題が存在する場所に人間の動意を不当に暗示することを示唆しているとしています。 今後の議論では、AI を別個の存在として描く枠組みから転じ、解釈への問いかけや誤りへの認識においてユーザーの専門性を育むことに焦点を移すべきです。開発者および企業に対しては、恐怖を煽る比喩ではなく正確な工学用語を採用することで、より良いリスク管理と説明責任を実現できます。真の熟達とは、どのような質問が重要かを理解し、熟練した運用と盲目的な委任を見極めることであり、不完全なパフォーマンスがツールの有用性や作業者の責任を否定するものではありません。

2026/10/13 1:13

C で構築されたモダンな Web アプリ

## Japanese Translation: 本テキストは、2026 年に C と CGI を OpenBSD 上で構築された独自の商用 Web アプリケーション「marketyour.games」について説明しています。このプロジェクトは現代のフレームワークよりも極度な簡潔性とセキュリティを優先しており、「BCHS」スタック(OpenBSD、C、httpd、SQLite)を採用し、外部のフレームワークや独立したデータベースサーバーは一切使用しません。核心的な革新点は、アプリケーション全体が静的にリンクされた単一のバイナリとして動作し、ランタイム依存関係がゼロであるというアーキテクチャにあります。デプロイはファイルを 1 つだけフォルダに配置するだけであり、古いバージョンを置き換えるだけで済みます。再起動やダウンタイムも不要です。 セキュリティは OpenBSD のデフォルト設定を通じて強制されており、httpd に対して `chroot` を適用し、C プログラムに対して `pledge` および `unveil` などのツールを使用して制約を課します。アーキテクチャは、すべての HTTP リクエストごとに新しいプロセスをフォークし、コードから直接アセットを提供することでメモリ内に完全に収まり、すべてのトラフィックを httpd を介して CGI バイナリにルーティングするという方式に基づいています。このアプローチでは JavaScript テンプレート言語を使用しない(プログレッシブ改善に従う)とともに、安定した CGI 1.1 規格に準拠しますが、使いやすさを犠牲にして制御性を追求します。 主な利点としては、サプライチェーンリスクが著しく低減すること—依存するのは C コンパイラーと 3 つのライブラリ(`libcurl`、`libsodium`、組み込み済みの `libcjson`)のみ—、そして GDB のような標準ツールによるデバッグが容易であることです。アプリケーションは通常の実行ファイルだからです。しかしながら、この手法では開発者がデータを解析するためのロジック(クッキー、クエリ、フォーム)やカスタムヘッダーの管理を自ら実装する必要があり、複雑な依存関係グラフではなく、基本的な HTTP 概念と Vim のような古典的なツール(プラグインなし)を活用する姿勢を選択します。

2026/10/13 4:40

ZX Spectrum 向けのデモシーンイントロを作成する

## Japanese Translation: 著者は、標準的な 128KB の ZX Spectrum にて手書きのレトロなイントロを成功裏に作成し、高度に最適化されたアセンブリ言語プログラミングにより複雑なビジュアルとオーディオを実現した。2 ヵ月間(2025 年 12 月から開始)にわたり、約 19KB のコード(具体的には 10287 バイトのメインルーチン)を書き下し、内蔵 ROM を書き換えることでカスタムフォント「Cartoon」を用いたスムーズなスクロールテキストを作成し、また Amiga モジュール「Milkman」を変換して 3 チャネル AY サウンドトラックを生成した。限られたメモリ制限を管理するため、アセットは BASIC ロードに分割され、ルーチンはオーバーヘッドを避けるために特定のアドレスでハードコーディングされた。技術的な最適化としては、Z80 RL 命令を用いてスクロールテキストの回転を実現し、スキャンライン衝突を避けるために Ruby で生成した座標テーブルを事前計算してスターフィールド効果を再現し、さらにサウンドチップから直接振幅レジスタを読み取ってバウンス VU メーターを実装している。プロジェクトは 1980 年代後半の Amiga クrack イントロに触発され、本物の Spectrum +3上でローカル TNFS サポートのある Makefile 駆動のビルドシステムを用いて開発された。最終的な.tap ファイルは Web ブラウザまたは pouet.net を経由して入手でき、レトロなハードウェア上で高忠実度な体験を提供し、極限を効率的に達成したコーディングの実証として立っている。

デフォルトで Codex CLI は永続的かつ自己更新される背景ダエモンをインストールします。 | そっか~ニュース