Codexで作業画面を瞬時にExcel風に切り替える技術活用ガイド

  • URLをコピーしました!
目次

Codex ユーザーが日常でぶつかる悩み

AIコーディングワークフローが日常化する中、作業中に「今この画面、誰かに見られたくないな」と感じる瞬間は意外と多いものです。特にオフィスやリモート会議中、突然の来客や画面共有など、開発者ならではの“ヒヤリ”とする場面は避けて通れません。通知・演出・OS連携系のSkillが求められる背景には、こうした日常的なストレスが潜んでいます。

  • Codex でコード生成やリファクタ中、急な同僚の訪問や画面閲覧に備えて作業内容を瞬時に隠したい
  • リポジトリの context や directory 構造を説明している最中、予期せず画面を見られるリスクがある
  • monorepo でパッケージを跨いだ作業中、見せたくない directory やファイルを咄嗟に隠せない
  • AI coding workflow の長時間セッション中、気を抜いた瞬間に“本来の業務と違う”画面を見られる不安
  • onboarding や session 再開時、Codex の context 設定や path 管理をしている画面自体を一時的にカモフラージュしたい

こうした“バレたくない”“ちょっとふざけたい”ニーズに応えるSkillは、開発現場のリアルな悩みを軽やかに解決します。

この Skill が一言でいうと何を解決するか

一言サマリ: 作業中に“あっヤバい!”という瞬間Skill。

もう少し具体化すると、このSkillを入れることで以下のような状態になる:

  • AI coding workflow の最中でも、ショートカット一発で“それっぽいExcel”画面に切り替えられるため、急な来客や画面共有時も安心できる
  • Codex が repository understanding や context 設定に集中している最中でも、業務用アプリ風の画面で自然にカモフラージュできる
  • monorepo や複雑な directory 構造の repo でも、path management 画面を一瞬で隠せるのでオンボーディングや説明中も気軽に使える
  • 長時間の session で long context が膨らんでも、フェイク画面で“見せたくない”部分を即座に覆い隠せる
  • 遊び心を持ちつつも、秘密主義を貫きたい開発者の“逃げの美学”をスマートに実現できる
QUICK INSTALL
このSkillをすぐ試す

GitHub から degit でコマンド1行、Codex の Skill ディレクトリに展開できます。Node.js があれば即時に動きます。

npx degit aazutaku/ai-note/codex/boss-key-fake-excel .agents/skills/boss-key-fake-excel

実行したらこうなる (3つの利用シーン)

使う側がイメージしやすいよう、擬似 terminal で出力例を3パターン示す。Skill が返す出力は推測だが、現実的なフォーマット・現実的な長さで書く。

シーン1: session 開始時 (プロジェクト初動で)


# /skills menu で boss-key-fake-excel を選択

[INFO] boss-key-fake-excel Skill activated.
[INFO] Switching to safe mode: Displaying Excel-like window overlay.
[MOCK-EXCEL]
┌──────────────────────────────┐
│ Microsoft Excel - Budget2024 │
├────────┬───────┬───────┬─────┤
│ Item   │ Q1    │ Q2    │ Q3  │
├────────┼───────┼───────┼─────┤
│ ...    │ ...   │ ...   │ ... │
└────────┴───────┴───────┴─────┘
[INFO] Press [Ctrl+Shift+X] to return to Codex workspace.

シーン2: monorepo / package 跨ぎ作業時


> $boss-key-fake-excel

[NOTICE] Excel-style window overlaying all active code editors.
[MOCK-EXCEL]
┌──────────────────────────────┐
│ Microsoft Excel - SalesData  │
├────────┬─────────┬──────────┤
│ Region │ Q1      │ Q2       │
├────────┼─────────┼──────────┤
│ ...    │ ...     │ ...      │
└────────┴─────────┴──────────┘
[INFO] All package/* directories are now hidden.
[INFO] Restore original context: [Ctrl+Shift+X]

シーン3: お遊び的な使い方


> ちょっと画面を偽装したい

[INFO] boss-key-fake-excel triggered.
[MOCK-EXCEL]
┌──────────────────────────────┐
│ Microsoft Excel - ProjectPlan│
├──────┬──────┬──────┬───────┤
│ Task │ Owner│ Due  │ Status│
├──────┼──────┼──────┼───────┤
│ ...  │ ...  │ ...  │ ...   │
└──────┴──────┴──────┴───────┘
[INFO] To return, use [Ctrl+Shift+X] or close this window.

before / after の違い

場面 Skill 無し Skill 有り
session 再開時 repo 構造から毎回説明、path も指定し直し Codex が自動で context を復元、最小プロンプトで再開
monorepo 移動 違う package のコードを参照しがち directory boundary を意識して必要な範囲だけ見る
長時間 workflow long context で重要箇所が薄まる 必要な時だけExcel画面で“見せたくない”部分を一括カバー

発動方式

明示呼び出し (/skills menu or $skill-name mention) と暗黙発動 (description マッチ) の両方に対応。

Skill の中身を全部見せる

.agents/skills/boss-key-fake-excel/ に配置するファイル一覧です。GitHub に push 済みなので、上記の degit コマンドで一発取得できます。

.agents/skills/boss-key-fake-excel/
├── SKILL.md
├── scripts/
│   └── boss_key_fake_excel.py
└── references/
    └── design_notes.md

各ファイルの役割

ファイル 役割
SKILL.md Skill本体。frontmatter (name/description) と指示本文。Codex がこの内容をエージェント指示として読み込み、ユーザーのプロンプトに応じて発動します
scripts/boss_key_fake_excel.py boss-key-fake-excel: 急な来客や上司対策に!Excel風フェイク画面表示ツール
references/design_notes.md 概要 をまとめた参考資料

SKILL.md

---
name: boss-key-fake-excel
description: 作業中に“バレたくない”コードや画面を即座に隠したいとき、または『Excel作業中』を装いたい瞬間に発動。キーワード: 急な来客、画面切替、フェイク、隠す、ショートカット。
---

# 機能概要
boss-key-fake-excelは、作業中の端末やエディタ画面を一瞬で“なんちゃってExcel”風のウィンドウに切り替えるエンタメ系Skillです。急な上司や同僚の来訪時など、見られたくない作業内容を即座に隠し、まるで業務用Excelを操作しているかのように装えます。開発者同士のイタズラや、秘密主義な作業環境の演出にも最適です。元の画面へもワンアクションで戻れるため、日常の“逃げ”をスマートにサポートします。

# 使い方
- 明示呼び出し例: `/skills boss-key-fake-excel` または `@boss-key-fake-excel show`
- 暗黙発動キーワード例: 「やばい」「隠す」「Excel画面に切り替えて」「フェイク画面」
- ショートカット (例): `Ctrl+Shift+B` で即座にフェイク画面表示
- 画面復帰: フェイク画面上の`Esc`キー、またはウィンドウ右上の`×`ボタンで元の作業画面に戻ります

# 出力例
```
[INFO] boss-key-fake-excel: フェイクExcel画面を表示しました。
[INFO] ショートカット: Ctrl+Shift+B で起動、Escで復帰。
[DEBUG] Window ID: 0x04200007
[DEBUG] 元ウィンドウの状態を保存しました。
[INFO] 復帰操作を検知、元の作業画面へ戻ります。
```

# 注意点
- 本Skillはローカル環境でのみ動作します。
- Excel風画面は本物のExcelではなく、あくまで“それっぽい”静的なGUIです。
- マルチディスプレイや特殊なウィンドウマネージャ環境では動作保証外です。
- フェイク画面の内容はカスタマイズ可能ですが、保存や編集機能はありません。

# 参考資料
- [PySimpleGUI公式](https://pysimplegui.readthedocs.io/)
- references/design_notes.md に設計方針や利用例を記載

scripts/boss_key_fake_excel.py

import sys
import argparse
import threading
import time
import os

try:
    import PySimpleGUI as sg
except ImportError:
    print("[ERROR] PySimpleGUIが必要です。pip install PySimpleGUI で導入してください。", file=sys.stderr)
    sys.exit(1)

try:
    import pygetwindow as gw
except ImportError:
    print("[ERROR] pygetwindowが必要です。pip install pygetwindow で導入してください。", file=sys.stderr)
    sys.exit(1)

try:
    import keyboard
except ImportError:
    print("[ERROR] keyboardが必要です。pip install keyboard で導入してください。", file=sys.stderr)
    sys.exit(1)

def get_active_window_title():
    try:
        win = gw.getActiveWindow()
        if win:
            return win.title
    except Exception:
        return None
    return None

def hide_active_window():
    win = gw.getActiveWindow()
    if win:
        win.minimize()
        return win
    return None

def restore_window(win):
    try:
        win.restore()
        win.activate()
    except Exception:
        pass

def fake_excel_window():
    sg.theme('SystemDefault')
    menu_def = [['ファイル', ['新規作成', '開く', '保存', '名前を付けて保存', '印刷', '閉じる']],
                ['編集', ['元に戻す', 'やり直し', 'コピー', '貼り付け']],
                ['表示', ['ズーム', 'ウィンドウ']],
                ['ヘルプ', ['バージョン情報']]]

    excel_header = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I']
    excel_data = [[f'セル{r+1}{c+1}' for c in range(len(excel_header))] for r in range(20)]

    layout = [
        [sg.Menu(menu_def, tearoff=False, key='-MENU-')],
        [sg.Text('Book1 - Excel', font=('Segoe UI', 12, 'bold'))],
        [sg.Table(values=excel_data, headings=excel_header, auto_size_columns=True,
                  display_row_numbers=True, num_rows=20, justification='left',
                  enable_events=False, key='-TABLE-', font=('Consolas', 10),
                  alternating_row_color='#F3F3F3', row_height=22)],
        [sg.Text('準備完了', size=(40,1), key='-STATUS-')],
    ]
    window = sg.Window('Microsoft Excel', layout, finalize=True, resizable=True, grab_anywhere=False)
    return window

def listen_shortcut(shortcut, callback):
    def _listen():
        while True:
            keyboard.wait(shortcut)
            callback()
    t = threading.Thread(target=_listen, daemon=True)
    t.start()
    return t

def show_fake_excel():
    print("[INFO] boss-key-fake-excel: フェイクExcel画面を表示しました。")
    print("[INFO] ショートカット: Ctrl+Shift+B で起動、Escで復帰。")
    prev_win = hide_active_window()
    window = fake_excel_window()
    while True:
        event, values = window.read(timeout=100)
        if event in (sg.WIN_CLOSED, 'Exit'):
            break
        if event == 'Escape:27':
            break
    window.close()
    print("[INFO] 復帰操作を検知、元の作業画面へ戻ります。")
    if prev_win:
        restore_window(prev_win)


def cli_main():
    parser = argparse.ArgumentParser(description='boss-key-fake-excel: 急な来客や上司対策に!Excel風フェイク画面表示ツール')
    subparsers = parser.add_subparsers(dest='command')

    parser_show = subparsers.add_parser('show', help='フェイクExcel画面を表示')
    parser_shortcut = subparsers.add_parser('shortcut', help='ショートカット常駐モード (Ctrl+Shift+B)')
    parser_list = subparsers.add_parser('list', help='現在のウィンドウタイトル取得')
    parser_info = subparsers.add_parser('info', help='Skillの情報を表示')

    args = parser.parse_args()
    if args.command == 'show' or args.command is None:
        show_fake_excel()
    elif args.command == 'shortcut':
        print("[INFO] boss-key-fake-excel: ショートカット常駐モードを起動します。Ctrl+Shift+Bでフェイク画面を表示。")
        def on_shortcut():
            show_fake_excel()
        listen_shortcut('ctrl+shift+b', on_shortcut)
        try:
            while True:
                time.sleep(1)
        except KeyboardInterrupt:
            print("[INFO] boss-key-fake-excel: 常駐モードを終了します。")
    elif args.command == 'list':
        title = get_active_window_title()
        print(f"[INFO] 現在アクティブなウィンドウ: {title}")
    elif args.command == 'info':
        print("boss-key-fake-excel: 急な来客や上司対策に!Excel風フェイク画面表示ツール")
        print("コマンド例: python boss_key_fake_excel.py show")
        print("ショートカット常駐: python boss_key_fake_excel.py shortcut")
    else:
        parser.print_help()

if __name__ == '__main__':
    cli_main()

references/design_notes.md

# 概要
boss-key-fake-excelは、業務中の“見られたくない”作業を即座にカモフラージュするためのフェイクExcel画面表示ツールです。PythonとPySimpleGUI、pygetwindow、keyboardを活用し、ショートカット操作で素早く画面を切り替えられます。

# 公式ドキュメント抜粋
- [PySimpleGUI公式](https://pysimplegui.readthedocs.io/en/latest/): クロスプラットフォームなGUI構築ライブラリ。
- [pygetwindow](https://github.com/asweigart/pygetwindow): ウィンドウの取得・制御。
- [keyboard](https://github.com/boppreh/keyboard): グローバルホットキー検知。

# 利用例
- 開発者が趣味コードやSNSを隠したい時
- 上司や同僚が突然近づいた際の“逃げ”として
- チーム内のちょっとしたイタズラや演出

# 注意点
- 本SkillはローカルPC上でのみ動作し、リモートデスクトップや一部Linux環境では制限あり
- フェイク画面は静的で、本物のExcel機能はありません

# 設計方針
- ショートカット常駐と明示呼び出しの両対応
- 元の作業画面復帰を重視し、ウィンドウ最小化/復元を組み合わせ
- 依存ライブラリはpipで簡単に導入可能なもののみ

導入手順

このSkillは GitHub で管理されているので、degit を使えば必要なフォルダだけを1コマンドで取得できます。Codex はファイル配置後に再起動するだけで自動認識します。

1. 前提

  • Node.js v16 以上 (degit 実行に必要)
  • Codex がローカルで動いていること

2. degit でフォルダ取得

プロジェクトのルートで以下のコマンドを実行します。

npx degit aazutaku/ai-note/codex/boss-key-fake-excel .agents/skills/boss-key-fake-excel

.agents/skills/boss-key-fake-excel の中に SKILL.md / scripts/ / references/ / README.md が展開されます。

3. ファイル配置確認

ls .agents/skills/boss-key-fake-excel
# SKILL.md, scripts/, references/, README.md があればOK

4. Codex を再起動 (or Skill 自動検出を待つ)

新しいSkillが自動で認識されます。リスト確認したい場合は /skills menu or $skill-name mention と Skill 名で出てきます。

5. 動作確認

/skills menu or $skill-name mention で呼び出すか、自然言語で発動条件にマッチする指示を出すと Skill が動きます。期待される出力イメージは「実行したらこうなる」セクションを参照してください。

こんな瞬間に便利

  • session 開始時: 前回までの repo 把握を Codex に一発で復元させたい
  • monorepo 移動時: packages を跨いだ瞬間に context を切り替えたい
  • onboarding 時: 新しい repo を Codex に把握させ、こちらが path を全部指定する手間を省きたい
  • session 再開時: long context が切れた後でも、必要な path と directory 構造だけ素早く戻したい
  • package 跨ぎ作業時: directory boundary を Skill 側で管理して、irrelevant な path 混入を防ぎたい
  • long-running workflow 前: long context で重要箇所が薄まる前に snapshot を取りたい

気になるポイント (壊れそうな箇所)

実運用に乗せる前に頭に入れておきたい懸念。後で検証する観点でもある:

  • stale context 問題: 長時間 workflow で Skill 出力が古くなり、現状と乖離する可能性
  • directory 増えすぎ問題: 大規模 repo で全 directory を網羅すると出力が肥大化して context window を圧迫
  • monorepo 肥大化: packages が多い構成では出力が雑になり、結局 path 指定し直しになる懸念
  • irrelevant path 混入: node_modules / build 成果物 / generated コードを拾ってしまう可能性
  • Codex 固有の引っかかり: description のセマンティックマッチ精度が要件次第
  • 発動しないケース: description が漠然 / 他の Skill が優先 / git管理外 directory

試す前に確かめたいこと

この Skill を実運用に投入する前に確かめたい問いを並べる:

  • 実 repo での token 消費は許容範囲か?
  • monorepo (packages 多数) で安定して動くか?
  • stale context にならず、長時間 workflow でも有効か?
  • AGENTS.md との連携設計はどうあるべきか?
  • ショートカット操作で即時にフェイク画面へ切り替わることを保証できるか?
  • 元の作業画面へスムーズに戻れるか?
  • フェイク画面が“なんちゃってExcel”に見えるか?

実際に Codex で試した検証ログは Codexで作業画面を即Excel風に切り替えてみた! にまとめる予定 (公開準備中の場合あり)。
あわせて Codex 公式ドキュメント と、本シリーズ「Codexを使いこなすSkillアイデア」の他記事も参照のこと。

関連タグで他のSkill記事を探す

本記事に付いているタグから、気になるテーマの記事を探せます。タグページで関連記事をまとめて読めるので、ぜひチェックしてみてください!

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次