Skip to content

fix(zsh): codex を fnox exec ラッパーで起動しキーを注入#57

Closed
k35o wants to merge 1 commit into
mainfrom
restore-codex-fnox-wrapper
Closed

fix(zsh): codex を fnox exec ラッパーで起動しキーを注入#57
k35o wants to merge 1 commit into
mainfrom
restore-codex-fnox-wrapper

Conversation

@k35o

@k35o k35o commented Jun 22, 2026

Copy link
Copy Markdown
Owner

概要

素の codexMissing environment variable: SAKANA_API_KEY`` で起動できなかったのを修正。

原因

  • Sakana プロバイダは env_key = SAKANA_API_KEY環境変数から読む。
  • だが秘密は fnox 管理でシェルに常駐していない~/.zshrcfnox-activate を自動実行せず、関数定義のみ。CLAUDE.md も「秘密は常駐させず fnox exec -- <command> で実行」と明記)。
  • 以前「activate しているから不要」と判断して codex() ラッパーを削除したのが誤りだった(activate は手動で、新ターミナルでは効いていない)。

対処

dot_config/zsh/aliases.zshcodex() ラッパーを復活:

codex() { fnox exec -- codex "$@"; }

fnox は PATH 上の実体を exec するため再帰しない。CLAUDE.md の fnox exec 方針に沿う。

テスト

新シェル相当(zsh -c 'source aliases.zsh; codex exec …')で PONG 応答・Missing エラー無しを確認。CI shellcheck は *.sh のみ対象で .zsh は不問。

codex は Sakana プロバイダの SAKANA_API_KEY を環境変数から読むが、秘密は fnox 管理で
シェルに常駐していない(fnox-activate は手動関数で自動実行されない / CLAUDE.md 方針)。
そのため素の codex は `Missing environment variable: SAKANA_API_KEY` で起動できなかった。

codex() ラッパーで `fnox exec -- codex` 経由にし、codex プロセスにだけ都度注入する。
新シェルで `codex exec` が PONG を返す(Missing エラー無し)ことを確認済み。
@k35o

k35o commented Jun 22, 2026

Copy link
Copy Markdown
Owner Author

auto-load(fnox export 起動時注入)方式に置き換えるためクローズ。codex ラッパーは不要に。

@k35o k35o closed this Jun 22, 2026
k35o added a commit that referenced this pull request Jun 22, 2026
秘密を2段 tier に分け、日常の API キーは自動ロード/機密は守る両立にする。

- fnox: K35O_BOT_*(GitHub App 秘密鍵=tier2) を [secrets] → [profiles.bot.secrets] に分離。
  default の exec/export には載らず `fnox exec -P bot` で取得。SAKANA 等の API キー(tier1)は [secrets] のまま。
- zsh: aliases.zsh をテンプレ化し、個人機の対話シェル(CLAUDECODE 以外)で
  tier1 を `eval "$(fnox export -f env)"` で自動ロード。素の codex 等が鍵を読める。
  新しい API キーは [secrets] に足すだけで自動で載る。
- new-project スキル: bot secret 投入を `fnox exec -P bot` に。
- CLAUDE.md: tier 運用を記載。

旧 codex ラッパー(PR #57)はこれに置換しクローズ済み。
実機検証: 対話=SAKANA載る/bot載らない・エージェント=載らない・-P bot=bot取得可・codex doctor auth ✓。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant