Estrutura do projeto

O diretório app/, o text.config.ts e a CLI text.

As pastas em app/ definem rotas, e arquivos especiais definem a interface de cada rota.

Pastas

PastaFinalidade
appRotas, layouts e manipuladores de rota
libMódulos compartilhados, sem roteamento
publicRecursos estáticos

Arquivos de roteamento

ArquivoFinalidade
layout.tsxInterface compartilhada de um segmento
page.tsxUma tela acessível por rota
loading.tsxConteúdo alternativo do Suspense
error.tsxLimite de erro
not-found.tsxURLs sem correspondência
route.tsEndpoint de API
app/├── layout.tsx            → shared shell├── page.tsx              → /├── sessions/│   ├── page.tsx          → /sessions│   └── [id]/page.tsx     → /sessions/:id└── api/health/route.ts   → GET /api/health

Rotas dinâmicas

PastaURLparams
[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" }],});
OpçãoPadrãoDescrição
title""Título da página e do FocusPad
viewportajustado ao console, senão 120×36responsive (padrão true), alternativa width × height, theme
hints[]Duas ou três teclas exibidas no FocusPad da página
actionpress <first hint>O que fazer após receber o foco, por exemplo, "type a prompt"
devIndicatorstrueSobreposição de desenvolvimento no console ([▼])
focusHinttrue“Clique na página para usar o teclado” sobre a última linha do console enquanto a página não está em foco
rewrites[]Reescritas e proxies
ansi{ cols: 80, rows: 24 }Tamanho do quadro para curl e clientes de terminal, ou false para servir HTML a eles

CLI

ComandoDescrição
text devServidor de desenvolvimento com Fast Refresh
text buildBuild de produção
text startServir o build e os manipuladores de rota
text runRenderizar o app em um terminal (Terminal)
text mcpServir o app a agentes de programação (MCP)
Editar esta página no GitHub