プロジェクト構成

app/ディレクトリー、text.config.ts、text CLI。

app/ 内のフォルダーがルートを定義し、特別なファイルが各ルートのUIを定義します。

フォルダー

フォルダー用途
appルート、レイアウト、ルートハンドラー
libルーティング対象外の共有モジュール
public静的アセット

ルーティングファイル

ファイル用途
layout.tsxセグメントで共有するUI
page.tsxルーティング可能な画面
loading.tsxSuspenseのフォールバック
error.tsxエラーバウンダリー
not-found.tsx一致するルートがないURL
route.tsAPIエンドポイント
app/├── layout.tsx            → shared shell├── page.tsx              → /├── sessions/│   ├── page.tsx          → /sessions│   └── [id]/page.tsx     → /sessions/:id└── api/health/route.ts   → GET /api/health

動的ルート

フォルダーURLparams
[id]/sessions/42{ id: "42" }
[...slug]/docs/a/b{ slug: ["a", "b"] }

text.config.ts

text.config.tsts
import { defineConfig } from "@textjs/app";export default defineConfig({  title: "Acme",  viewport: { width: 120, height: 36, theme: "geistDark" },  hints: [{ keys: "↑ ↓", label: "count" }],});
オプションデフォルト説明
title""ページとFocusPadのタイトル
viewportコンソールに合わせる、それ以外は 120×36responsive(デフォルトは true)、フォールバックの width × height、theme
hints[]ページのFocusPadに表示する2〜3個のキー
actionpress <first hint>フォーカス後の操作、例:"type a prompt"
devIndicatorstrueコンソール内の開発用オーバーレイ([▼])
focusHinttrueページにフォーカスがない間、コンソールの最終行に重ねて表示する「キーボードを使うにはページをクリックしてください」
rewrites[]リライトとプロキシー
ansi{ cols: 80, rows: 24 }curlとターミナルクライアント用のフレームサイズ、またはHTMLを配信する場合は false

CLI

コマンド説明
text devFast Refresh対応の開発サーバー
text build本番用ビルド
text startビルドとルートハンドラーの配信
text runターミナルでのアプリの描画(ターミナル)
text mcpコーディングエージェントへのアプリの配信(MCP)
GitHubでこのページを編集