🏠 ホーム ニュース 📖 解説記事 📚 トピック解説 🏷️ タグ一覧 ℹ️ About
🔍 記事を検索
カテゴリ
📡 RSSフィード
Follow
X (Twitter) 🧵 Threads
Quick Links
ニュース一覧 🏷️タグから探す
🧠Claude 🤖Agent 💬LLM 🔌MCP 🛠️Tool
Subscribe
📡 RSSフィード
ホーム tool 2026.04.05

tuitter:ターミナルからXを操作できるTypeScript製TUIクライアントの導入と使い方

bddicken/tuitter
🐦
tuitter:ターミナルからXを操作できるTypeScript製TUIクライアントの導入と使い方 - AIツール日本語解説 | AI Heartland
// なぜ使えるか
ブラウザを起動せずターミナルからXを操作できるTypeScript製TUIクライアント。BunランタイムとOpenTUIフレームワークで実装されており、OAuth 2.0経由でX API v2に接続。設定ファイルは1つ、コマンド3行で動き始める。

コードを書きながらXをチェックするためにブラウザに切り替える——その数秒の切り替えがフローを断ち切っている。tuitter(ツイッター)は、ターミナルを離れずにXを操作できるTypeScript製のTUI(Terminal UI)クライアントだ。BunランタイムとOpenTUIフレームワークで実装されており、OAuth 2.0でX API v2に接続する。

GitHubスター数は300を超え、エンジニアの間でターミナルXクライアントとして注目を集めている。本記事では、インストールからX Developer Appの設定、実際の操作方法まで一通り解説する。

tuitterとは:ターミナルで動くXクライアントの概要

tuitterはBenjamin Dicken氏が開発した、X(旧Twitter)のTUIクライアントだ。TypeScriptとBunランタイムで実装されており、OpenTUIというターミナルUIフレームワークを基盤にしている。

TUI(Terminal User Interface)とは、テキストベースのターミナル上に描画するUIのことだ。GUIのようにマウス操作はできないが、キーボードだけで完結する操作体系が特徴で、SSH接続先のサーバーやリモート環境でも動作する。

同様のアプローチで作られたターミナルツールには、Podman TUI(Go製のコンテナ管理ダッシュボード)など、各領域に専用のTUIクライアントが存在する。tuitterはそのXフィード版に相当する。

主なスペック:

Bunを選んだ理由:Node.jsとの違い

tuitterがBunを採用している点は注目に値する。BunはNode.js互換のJavaScriptランタイムで、起動速度とパッケージインストール速度がNode.jsより大幅に速い。

TUIツールのような「素早く起動して操作する」という用途には、起動レイテンシの低さが重要だ。bun linkでグローバルコマンドとして登録すると、tuitterと打つだけでほぼ即座に起動する。

また、Bunは.envファイルを標準でサポートしており、dotenvなどの追加パッケージなしに環境変数を読み込める。tuitterのセットアップがシンプルに保たれているのは、この点も大きい。

インストールとセットアップ手順

前提条件

Bunのインストールはワンライナーで完了する:

curl -fsSL https://bun.sh/install | bash

リポジトリのクローンと依存パッケージのインストール

git clone https://github.com/bddicken/tuitter.git
cd tuitter
bun install

bun installはnpm installより数倍速く、プロジェクトの依存解決が数秒で終わる。

環境変数の設定

リポジトリには.env.exampleが含まれている。これをコピーして設定する:

cp .env.example .env

.envファイルの構造は以下の通りだ:

# 必須
X_CLIENT_ID=your_client_id_here

# オプション
X_CLIENT_SECRET=your_client_secret_here
X_REDIRECT_URI=http://127.0.0.1:8787/callback
X_OAUTH_SCOPES=tweet.read users.read tweet.write like.write like.read bookmark.write bookmark.read offline.access
X_TOKEN_STORE_PATH=~/.tuitter/oauth-token.json
X_IMAGE_MODE=auto  # auto / kitty / off

必須なのはX_CLIENT_IDだけだ。残りはデフォルト値が用意されており、最小構成で動かすならX_CLIENT_IDを設定するだけでよい。

グローバルコマンドとして登録して起動

bun link
tuitter

bun linkによりtuitterがグローバルコマンドとして登録される。初回起動時にブラウザが開き、OAuthフローが始まる。

X Developer Appの設定方法

tuitterを動かすにはX Developer AccountとOAuth 2.0対応のアプリが必要だ。以下の手順で設定する。

Developer Consoleでの操作手順

  1. console.x.com にアクセスしてログイン
  2. 既存プロジェクトを選択するか、新規プロジェクト・アプリを作成
  3. アプリ設定画面でOAuth 2.0を有効化
  4. コールバックURL(Redirect URL)に http://127.0.0.1:8787/callback を追加
  5. アプリ設定から Client ID をコピーして .envX_CLIENT_ID に設定
  6. Confidentialクライアントとして設定する場合はClient Secretも .envX_CLIENT_SECRET に設定

デフォルトのOAuthスコープ

tuitterがデフォルトでリクエストするスコープは以下の通りだ:

tweet.read
users.read
tweet.write
like.write
like.read
bookmark.write
bookmark.read
offline.access

読み取りに加えてツイート投稿・いいね・ブックマーク操作のスコープも含まれる。X_OAUTH_SCOPES環境変数でカスタマイズも可能だ。

OAuth 2.0認証フローの仕組み

tuitterの認証フローは標準的なOAuth 2.0 Authorization Code Flowだ。初回起動時だけブラウザを使い、以降はローカルに保存されたトークンで動作する。

sequenceDiagram participant U as ユーザー participant T as tuitter participant B as ブラウザ participant X as X API U->>T: tuitter コマンド実行 T->>T: ~/.tuitter/oauth-token.json を確認 alt トークンなし(初回) T->>B: ブラウザを開いてOAuth URL表示 B->>X: 認証リクエスト X->>B: ログイン・権限承認画面 B->>T: http://127.0.0.1:8787/callback にリダイレクト T->>X: Authorization Code で Token取得 T->>T: トークンを~/.tuitter/に保存 else トークンあり(2回目以降) T->>X: 保存済みトークンで直接接続 end T->>U: TUI画面を表示

offline.accessスコープにより、Refresh Tokenが取得される。これにより長期間の利用でもブラウザ再認証が不要になっている。

画像表示モードの設定

tuitterはX_IMAGE_MODE環境変数で画像のレンダリング方法を変更できる。

モード 動作 推奨環境
auto 環境を自動検出して最適な方法を選択 デフォルト。多くの環境で動作
kitty Kittyターミナルの画像プロトコルを使用 Kitty使用時に高品質な画像表示
off 画像表示を無効化 SSH環境、低帯域回線、テキスト専用端末

Kittyターミナルを使っている場合はX_IMAGE_MODE=kittyを設定することで、ターミナル内でインライン画像表示が可能になる。

他のX/Twitterクライアントとの比較

ターミナルからXを操作するツールは複数存在する。tuitterの位置づけを整理する。

ツール 言語/実装 認証 投稿可能 画像表示 特徴
tuitter TypeScript + Bun OAuth 2.0 ✅(kitty対応) 公式API使用、読み書き両対応
tut Go OAuth 1.0a 限定的 Mastodon向けTUI
rainbowstream Python OAuth 1.0a 限定的 Python製Twitterクライアント(旧API)
nitter Web(自己ホスト) 不要 読み取り専用の軽量フロントエンド
twurl Ruby OAuth 1.0a CURLのTwitter版CLI(API検証用)

tuitterはX API v2のOAuth 2.0を使用している点が現代的だ。旧来のOAuth 1.0aベースのツール(rainbowstreamなど)はXの認証ポリシー変更で動作しなくなったものが多いが、tuitterはX API v2に完全対応している。

また、SNS自動化や情報収集ツールとの組み合わせも考えられる。たとえばXのデータ収集にはOsintgram(Instagram OSINT)のようなアプローチをXに適用する方向性も研究されているが、tuitterは個人利用のインタラクティブクライアントに特化している。

トークンの管理とセキュリティ

取得したOAuthトークンはデフォルトで ~/.tuitter/oauth-token.json に保存される。保存場所は X_TOKEN_STORE_PATH 環境変数で変更可能だ。

# カスタムトークン保存先の例
X_TOKEN_STORE_PATH=/home/user/.config/tuitter/token.json

このファイルにはAccess TokenとRefresh Tokenが含まれるため、パーミッションの設定に注意が必要だ:

# トークンファイルのパーミッションを確認・設定
ls -la ~/.tuitter/oauth-token.json
chmod 600 ~/.tuitter/oauth-token.json

トークンの範囲は.envX_OAUTH_SCOPESで制限できる。読み取り専用で使う場合は書き込みスコープを外すことを推奨する:

# 読み取り専用スコープの設定例
X_OAUTH_SCOPES=tweet.read users.read like.read bookmark.read offline.access

tuitterが向いているユースケース

コーディング中のX閲覧: IDEやエディタとターミナルを並べて使う開発者にとって、ブラウザを開かずにXのタイムラインを確認できるのは利点だ。tmuxやzellij等のターミナルマルチプレクサと組み合わせると、ペインの一つにtuitterを表示したまま開発できる。

リモートサーバー環境: SSH接続した開発サーバーやVPSでも動作するため、サーバー作業中にXを確認したいケースに対応できる。

Kittyターミナルユーザー: Kitty特有の画像プロトコルに対応しているため、Kittyを常用している開発者にとってはツイート内の画像もターミナル内でレンダリングされる。

一方で、チームのSNS運用自動化や定期投稿などには向いていない。そのような用途にはTypefully APIやX API v2のスケジュール機能を直接使うアプローチが適している。

まとめ

tuitterは、ターミナル中心の開発ワークフローに自然に馴染むXクライアントだ。セットアップの複雑さはX Developer Appの登録のみであり、インストール自体は3コマンドで完了する。

BunとTypeScriptの組み合わせにより、Node.jsベースのツールと比較して起動速度とインストール速度が改善されている。OAuth 2.0 + X API v2対応で、旧来のTwitterクライアントが抱えていた認証問題を回避している点も現代的だ。

ターミナルから離れたくないエンジニアのための、シンプルで実用的なツールとして機能する。

参照ソース

広告
🔌
MCP対応ツール特集
Claude Codeと連携できるMCPサーバーの日本語解説まとめ
GitHub で見る X 🧵 Threads Facebook LINE B! はてブ
🔔 AI速報、毎日Xで配信中
Claude Code・MCP・AIエージェントの最新ニュースをいち早くお届け
@peaks2314 をフォロー
記事の信頼性について
AI Heartland エディトリアルポリシーに基づき作成
複数ソース照合
公式情報・報道等を突き合わせて確認
ファクトチェック済
ソースURLの内容を検証
参照ソース明記
記事末尾に引用元を掲載
Next Read →
🎬 Awesome Seedance 2 Guide:AI動画生成プロンプト完全ガイド|10カテゴリ55事例収録
関連記事
🧪 Vercel Emulate:LocalStack代替の軽量マルチサービスエミュレーターでAWS/外部APIテストを自動化
Vercel LabsのEmulateはLocalStack代替として注目される軽量エミュレーター。Docker不要でAWS・Slack・GitHubをローカルで再現。LocalStack比較でセットアップの手軽さが際立ち、CI/CD統合も容易。
2026.04.05
🎬 Awesome Seedance 2 Guide:AI動画生成プロンプト完全ガイド|10カテゴリ55事例収録
Seedance 2.0のプロンプトガイド。画像・動画・音声・テキスト4モダリティ同時入力に対応し、10カテゴリ55事例のプロンプトテンプレートを収録。AI動画制作を始める方は必見。
2026.04.05
📨 Postiz:Buffer代替AIソーシャルメディア自動投稿ツール、19媒体をセルフホストで一括管理
PostizはBufferやHypefuryの完全OSS代替。Instagram・TikTok・X・LinkedIn等19媒体に対応し、AI投稿生成・チーム管理・n8n連携をDockerでセルフホスト運用できる。AGPLライセンス、スター27,000超。
2026.04.05
🎨 Nothing Design Skill:AIがデザイン知識を習得するスキルセット
AIモデルにデザイン原則を教えるオープンソースプロジェクト。1016スターを獲得した注目リポジトリから、AI×デザイン教育の実装方法を学ぶ。
2026.04.03
Popular
#1 POPULAR
🔓 Claude Codeのソースコード流出、npmソースマップに51万行が丸見えだった件
Anthropic Claude Codeのnpmパッケージにソースマップが含まれ、1,902ファイル・51万行超のTypeScriptソースが公開状態に。未公開プロジェクト「KAIROS」や107個のフィーチャーフラグなど、内部コードの全貌を解説する。
#2 POPULAR
🚨 【速報】JavaScript主流ライブラリAxios、NPM供給チェーン攻撃でRAT配布
JavaScriptの週間1億DL HTTPクライアント「Axios」がNPM供給チェーン攻撃の被害に。[email protected]と0.30.4に悪意あるパッケージplain-crypto-jsが注入され、クロスプラットフォーム対応RATが配布。証拠自動削除機能を備えた高度な攻撃。
#3 POPULAR
⚠️ Anthropic、Claude Codeで予想外の高速クォータ枯渇認める。キャッシュバグで料金10〜20倍
Claude Codeでプロンプトキャッシュを破壊する2つのバグが発見され、API利用料が10〜20倍に跳ね上がる問題が発生。Anthropicは「チームの最優先事項」と認める。Pro/Maxユーザーから月間の大半で使用不可との報告多数。
#4 POPULAR
🔍 Claude Codeセキュリティ事件を切り分ける:ソース漏洩とaxios攻撃の違いと対処法
3月31日にClaude Codeで起きたソース漏洩とaxiosマルウェア。感染チェックコマンド・対策コードを交えて、2つの別事件の実態と具体的な対応手順を解説。
#5 POPULAR
🚀 ソフトウェア開発者ではない人が400ドルから年7M達成。AI時代の先発者優位性
AI技術を活用して短期間で大規模な収益を生み出した事例から、開発経験がなくても可能な起業の実態と、AI知識の先発者優位性について解説する。
← Claude Sonnet 5(claude-sonnet-5-20260401)リリース:SWE-bench 92%超えで開発者が知るべき全仕様 Awesome Seedance 2 Guide:AI動画生成プロンプト完全ガイド|10カテゴリ55事例収録 →