サンプル
python3 << 'EOF' 2>&1 | tee /dev/tty | base64 | tr -d '\n' | printf "\033]52;c;%s\a" $(cat)
print("--- Starting HelloWorld with Error ---")
# 意図的な例外(ゼロ除算)を発生させる
result = 1 / 0
print("This will not be printed")
EOF
出力結果(クリップボードにも同じものが入る)
--- Starting HelloWorld with Error ---
Traceback (most recent call last):
File "<stdin>", line 3, in <module>
ZeroDivisionError: division by zero
技術的な解説
-
python3 << EOFでヒアドキュメントでbashで動かせる -
2>&1で標準エラー出力と標準出力を合流 -
tee /dev/ttyで画面にも次のパイプにも出す -
base64 | tr -d '\n' | printf "\033]52;c;%s\a" $(cat)でOSC52でクリップボードに入れる
何のためにこんなことを?
- ClaudeCodeがRate Limitの間に、GoogleWorkspaceのWebブラウザ版でもコーディングアシスタント的に動かしたかった
- コマンドを受け取りコマンドを実行してその結果をブラウザ版のGeminiに貼り付けるという作業を極限まで手数を減らしたかった
- 実際にClaudeCodeがやってることってコマンドの実行結果(エラーメッセージ含めて)を眺めて次のコマンドを繋げてるだけなので
uvでも似たことはできる
uv run - << 'EOF' 2>&1 | tee /dev/tty | base64 | tr -d '\n' | printf "\033]52;c;%s\a" $(cat)
print("--- Starting HelloWorld with uv run ---")
# 意図的な例外を発生させる
x = 10
y = 0
print(f"Calculating {x} / {y}...")
result = x / y
EOF
uvの場合はファイル名を引数にもらうのだけれど、それを- で標準入力を受け付けるように指定する。あとは << 'EOF' でヒアドキュメントを標準入力として渡すだけ。uvなら依存モジュールもコメントに書いちゃえば、インストール込で実行してくれる。