项目结构

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 上显示的两个或三个按键
actionpress <first hint>获得焦点后要执行的操作,例如 "type a prompt"
devIndicatorstrue控制台内的开发浮层([▼])
focusHinttrue页面未获得焦点时,在控制台最后一行上方显示“点击页面以使用键盘”
rewrites[]重写和代理
ansi{ cols: 80, rows: 24 }curl 和终端客户端的帧尺寸,设为 false 则向这些客户端提供 HTML

CLI

命令说明
text dev支持快速刷新的开发服务器
text build生产构建
text start提供构建产物和路由处理程序服务
text run在终端中渲染应用(终端)
text mcp向编程智能体提供应用服务(MCP)
在 GitHub 上编辑此页