日本語のPC名で vercel login が ByteString エラーで落ちる — PC名を変えずに os.hostname シムで直す
Windows の日本語コンピューター名が Vercel CLI の User-Agent に入り undici が拒否する問題を、NODE_OPTIONS --require の1ファイルで回避。team 複数時の --scope、.env.local 上書き、ブラウザ自動起動の罠つき
約11.8万トークンの節約 (API料金換算で約180円分)。 要件定義・技術調査・試行錯誤ぶんのトークンがまるごと不要になります。※ 出品者申告とレビューに基づく推定値。モデル・タスク内容により変動します。
この巻物について
「日本語のPC名で vercel login が ByteString エラーで落ちる — PC名を変えずに os.hostname シムで直す」は、Web開発カテゴリのAI指示書(MDファイル)です。Windows の日本語コンピューター名が Vercel CLI の User-Agent に入り undici が拒否する問題を、NODE_OPTIONS --require の1ファイルで回避。team 複数時の --scope、.env.local 上書き、ブラウザ自動起動の罠つきこの巻物をAIに読み込ませると、ゼロから設計・調査する場合に比べて 約11.8万トークン(API料金換算で約180円)・98%のトークンを節約できます。
- カテゴリ
- Web開発
- 対応AI
- claude-code、cursor、codex-cli
- ライセンス
- 商用利用可 (再販不可)
- 価格
- 無料
- ゼロから開発時
- 約12万トークン
- この巻物使用時
- 約2,500トークン
- 節約量
- 約11.8万トークン (約180円)
- 更新日
- 2026-10-13
使い方 (AIに渡す3つの方法)
いちばん簡単なのはワンライナー。Claude Code のターミナルに貼るだけです。
claude "https://makimono-md.vercel.app/api/v1/files/pc-vercel-login-bytestring-pc-os-hostname/raw を読み込んで、この指示書どおりに実装して"
中身
日本語のPC名で vercel login が落ちる(ByteString TypeError)を、PC名を変えずに直す
症状
Windows で vercel login(Vercel CLI 63.x、Node 20〜24)を実行すると、ブラウザが開く前に即終了する。
Error: An unexpected error occurred in login: TypeError: Cannot convert argument to a ByteString because the character at index 0 has a value of 20316 which is greater than 255.
20316 は「作」の文字コード。コンピューター名が「作業用PC」のように日本語(非 Latin-1)を含むと起きる。
原因
Vercel CLI はデバイス認証の HTTP リクエストで User-Agent に os.hostname() を入れる(dist/chunks/*.js の userAgent = \${hostname()} @ ${ua}`)。Node の fetch`(undici)はヘッダー値に Latin-1 以外を許さないため、日本語のホスト名で例外になる。PC名の変更はドメイン参加や他ツールに影響するので避けたい。
直し方(PC名を変えない。CLI も編集しない)
- シムを1ファイル置く(例
<ホーム>/.local-shims/os-hostname-ascii.cjs):
// os.hostname() が非ASCIIのときだけ ASCII の別名を返す
const os = require('os');
const module_ = require('module');
const FALLBACK = 'my-pc';
const orig = os.hostname.bind(os);
function safeHostname() {
let h = '';
try { h = orig(); } catch { h = ''; }
return (!h || /[^\x20-\x7E]/.test(h)) ? FALLBACK : h;
}
os.hostname = safeHostname;
if (os.default && typeof os.default === 'object') os.default.hostname = safeHostname;
// ESM の `import { hostname } from "os"` にも効かせる
if (typeof module_.syncBuiltinESMExports === 'function') module_.syncBuiltinESMExports();
- Vercel CLI を呼ぶときだけ
NODE_OPTIONSで先読みさせる:
$env:NODE_OPTIONS = "--require <ホーム>/.local-shims/os-hostname-ascii.cjs"
$env:VERCEL_TELEMETRY_DISABLED = "1"
vercel login # 以後 vercel whoami / env add / --prod も同じ env で
bash なら NODE_OPTIONS="--require <ホーム>/.local-shims/os-hostname-ascii.cjs" vercel login。
- 確認:
node --require <シム> -e "console.log(require('os').hostname())"がmy-pcを出せば OK。vercel loginはVisit https://vercel.com/oauth/device?user_code=XXXX-XXXXまで進む。
罠
- 動作確認で
vercel loginを起動すると、CLI がブラウザを自動で開く。確認だけならBROWSER=echoを付けるか、開いたタブを閉じる。放置すると期限切れコードのタブが残り、人がそれを操作して「Could not verify user code」になる。 vercel link --yesは所属する team が複数あると止まる。--scope <team-slug>を付ける(vercel whoamiの後の JSON のnext[]にスラッグが出る)。vercel linkは.env.localを上書きすることがある(「Updated .env.local」と出る)。env を入れる前に値を別ファイルに退避しておく。vercel env add NAME productionは標準入力から値を読める:printf '%s' "$VALUE" | vercel env add NAME production。改行を混ぜない(tr -d '\r\n')。
同じ原因で落ちる可能性があるもの
os.hostname() を HTTP ヘッダーや URL に入れる CLI 全般(デバイス認証系)。エラー文に ByteString と index 0 has a value of <5桁> が出たら、まず PC名の非ASCII を疑う。
よくある質問
+「日本語のPC名で vercel login が ByteString エラーで落ちる — PC名を変えずに os.hostname シムで直す」とは何ですか?
Windows の日本語コンピューター名が Vercel CLI の User-Agent に入り undici が拒否する問題を、NODE_OPTIONS --require の1ファイルで回避。team 複数時の --scope、.env.local 上書き、ブラウザ自動起動の罠つき
+どれくらいトークン(費用)を節約できますか?
ゼロから開発すると約12万トークンかかりますが、この巻物を使えば約2,500トークンで済みます。差し引き約11.8万トークン(API料金換算で約180円)・98%の節約です。
+どうやって使いますか?
無料です。MDファイルを Claude Code などのAIに読み込ませるだけ。ワンライナーをターミナルに貼れば実装が始まります。要件定義や技術調査を省いて実装だけにトークンを使えます。
+どのAIツールに対応していますか?
claude-code、cursor、codex-cli に対応しています。
+商用利用できますか?
ライセンスは「商用利用可 (再販不可)」です。
🤝 自分でAIを動かすのは、まだ不安…という方へ
この巻物の内容を、AIを使うプロに丸ごと任せることもできます。姉妹サービスAI代行堂なら「LINEで頼むだけで、仕事が完成」。
関連する巻物
Next.js + Supabase + Vercel 立ち上げ完全自動化MD
新規Webサービスの立ち上げ (GCP/GitHub/Vercel/Supabase のプロジェクト作成〜環境変数〜本番デプロイ) を AI に一気通貫でやらせる指示書。人間の作業はログイン1回だけ。
投稿の審査キューを「信頼済みだけ自動公開」で捌く設計(なりすまし穴つき)
審査キューに投稿が溜まったまま埋もれる問題を、信頼済み投稿だけ即公開する形で潰す指示書。無検証のキー発行を信頼判定に使うと第三者が自社メールを騙れる穴と、サーバレスで静的公開棚に実行時公開を足す方法、検証10項目まで含む。
DB型サイトを「一覧だけ会員限定・個別ページは残す」に切り替える指示書(Next.js App Router)
自社DBで集客していたサイトが競合のリスト抜き取りに気づいた時の改修手順。名前が並ぶバルクな一覧だけを会員限定にし、個別ページはtitle/H1とCTAを残す。ItemList JSON-LDやsitemapの漏れ、force-dynamic化のコスト副作用、Layer1(HTML)+Layer2(Playwright実描画)の受け入れテストまで含む。
この巻物、誰かのトークンも救えます
𝕏 で節約レシートをシェア