FastCAT is a self-hosted, browser-based CAT/TMS stack for translation teams. It combines project intake, translation memory, terminology, rules, MT/LLM provider management, a browser editor, and an app-wide assistant in one Docker deployment.
License: source-available for non-commercial use only. Commercial use requires a separate paid license. See LICENSE.
The repository is no longer a small "TM Lite" demo. The current application includes:
- Global Setup for first-run provisioning and first admin creation
- Role-based access for
admin,manager, andreviewer - Dashboard with summary metrics and the App Agent chat panel
- Projects area with a multi-step creation wizard, provisioning flow, downloads, and project detail views
- Inbox for assigned work
- Browser editor with classic and modern modes, TM/TB/MT/LLM suggestions, concordance, QA/issues, history, bulk actions, and rendered previews
- Resources area for project templates, file type configurations, JSON/extraction templates, translation engines, translation memories, termbases, rulesets, and NMT/LLM providers
- Admin pages for users, stats, language settings, departments, and App Agent configuration
- Background provisioning and pretranslation workers
The codebase and tests currently cover XLIFF/XML, HTML/XHTML/XTML, and Office document flows (.docx, .pptx, .xlsx). TMX-backed translation memory is handled through t5memory plus tm-proxy.
FastCAT runs as a multi-service Docker stack:
| Service | Purpose | Default port |
|---|---|---|
web |
Nginx serving the frontend and reverse proxying the APIs | 9991 |
frontend |
React 19 + Vite single-page app | built into web |
cat-api |
Main CAT/TMS API, project handling, editor APIs, resources, chat backend | 4000 |
tm-proxy |
Auth, user management, and TM/TMX proxy APIs | 3001 |
llm-gateway |
OpenAI-compatible provider gateway and App Agent runtime support | 5005 |
tm-db |
Postgres persistence | 5433 |
redis |
Rate limits and worker/support state | 6379 |
minio |
S3-compatible object storage for uploads and generated artifacts | 9000 / 9001 |
t5memory |
Translation memory engine | 4040 |
tm-backup |
Periodic Postgres backup container | internal |
Requirements:
- Docker with Compose support
Start the full stack:
docker compose up -d --buildThen open http://localhost:9991.
On the first run, FastCAT redirects to Global Setup. Complete that flow to create the first admin account and initialize the application.
For day-to-day development, the simplest path is to run the full Docker stack and optionally run the frontend or cat-api locally.
Frontend:
cd frontend
npm install
npm run devCAT API:
cd cat-api
npm install
npm run devThe remaining services are typically left on Docker unless you are working on them directly.
- Authentication is handled by
tm-proxy. - Project, resource, and editor APIs are exposed from
cat-api. - Files and derived artifacts are stored in MinIO by default. In AWS-style deployments, the same code can point at S3 via environment variables.
- The App Agent stores chat threads, messages, and tool calls in Postgres.
llm-gatewayspeaks an OpenAI-compatible API and can bridgelocalhostinside containers tohost.docker.internalfor local model endpoints../glossariesis mounted into the stack and available tocat-apiat startup.- No TMX libraries are preloaded automatically; upload them through the UI.
Service tests:
cd frontend
npm testcd cat-api
npm testDocker smoke checks:
node scripts/docker-smoke-check.mjs
node scripts/app-agent-project-flow-smoke.mjsOptional UI/screenshot checks:
node scripts/capture-ui-screenshots.mjs
node scripts/capture-collection-shell-screens.mjsThe smoke scripts exercise admin, manager, and reviewer flows, project creation, termbase access rules, and guided App Agent project creation.
| Variable | Purpose |
|---|---|
JWT_SECRET |
Shared JWT signing secret used by the app services |
TM_DB_URL, CAT_DB_URL |
Postgres connection strings |
S3_BUCKET, S3_ENDPOINT_URL, S3_PUBLIC_ENDPOINT_URL, S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY |
Object storage configuration |
REDIS_URL |
Redis connection string |
TM_PROXY_URL |
cat-api to tm-proxy base URL |
LLM_GATEWAY_URL |
cat-api to llm-gateway base URL |
LLM_GATEWAY_LOCALHOST_BRIDGE |
Localhost rewrite for container-to-host model access |
APP_AGENT_INTERNAL_SECRET |
Internal auth between App Agent components |
CHAT_AGENT_SYSTEM_PROMPT |
Server-side system prompt for the App Agent |
CHAT_LLM_PROVIDER_ID |
Optional fixed provider for chat |
CHAT_RATE_LIMIT_PER_MINUTE |
Per-user chat rate limit |
CHAT_MAX_HISTORY_MESSAGES |
Chat history window loaded per turn |
CHAT_TRANSLATE_MAX_CHARS |
Character limit for snippet translation tool calls |
frontend/- React UIcat-api/- main backendtm-proxy/- auth and TM/TMX proxyllm-gateway/- Python gateway for providers and agent runtimeweb/- Nginx packaging for the frontenddocs/- design notes, acceptance notes, and screenshot helpersscripts/- smoke checks and screenshot capture helpersexample_files/- sample input files for manual testing
FastCAT is source-available, not MIT-licensed.
- Non-commercial use is allowed under the terms in
LICENSE. - Commercial use is not granted by default.
- Any commercial use requires a separate written paid license from the copyright holder.