Структура проекта

Каталог app/, файл text.config.ts и CLI text.

Папки в app/ определяют маршруты, а специальные файлы определяют интерфейс каждого маршрута.

Папки

ПапкаНазначение
appМаршруты, макеты и обработчики маршрутов
libОбщие модули без маршрутов
publicСтатические ресурсы

Файлы маршрутизации

ФайлНазначение
layout.tsxОбщий интерфейс сегмента
page.tsxЭкран, доступный по маршруту
loading.tsxЗапасной интерфейс Suspense
error.tsxГраница ошибок
not-found.tsxURL без соответствующего маршрута
route.tsКонечная точка API
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Сервер разработки с Fast Refresh
text buildСборка для продакшена
text startОбслуживание сборки и обработчиков маршрутов
text runРендеринг приложения в терминале (Терминал)
text mcpПредоставление приложения агентам программирования (MCP)
Изменить эту страницу на GitHub