Open-source i18n tooling for TypeScript applications: write messages next to your code, keep translations in your repository, and use a Rust-powered toolchain from extraction to runtime.
Website · Documentation · Frameworks and live demos · Benchmarks
Palamedes 2.0 is out. The v2 release notes explain what changed, and the migration guide walks you through the upgrade from 1.x.
- Author messages in code. TypeScript and JSX macros cover interpolation,
plurals, selects, and rich text, with
message + contextas message identity. - Keep catalogs in Git. Source-string-first PO catalogs, optional FCL storage, semantic merging, and a Git merge driver support local workflows.
- Automate translation checks. The
pmdsCLI extracts and watches sources, checks catalog drift, lints authoring, audits ICU compatibility, reports translation coverage, and hosts configured binary plugins. Agents can check changed source files directly withpmds lint <files> --json --fail-on warning. - Delegate catalog delivery. V2 adapters load compiled translations for the active locale, including lazy browser dependencies, without app-owned catalog maps. Server runtimes isolate request state and share immutable compiled catalogs.
The local workflow needs no account or managed service. See the architecture for the source-to-runtime model and proof for reproducible measurements.
| Application | Integration |
|---|---|
| React and Solid | Translation components, macros, and headless locale helpers; Vite integration, including MDX. |
| Next.js, TanStack Start, Solid 2 Start Mode, and React Router | Framework integration for server rendering and browser delivery. TanStack Start is verified with React; Solid is verified with Solid 2 Start Mode and Nitro. |
| Remix v3 and Waku | Dedicated adapters, verified with Remix 3.0.0 and Waku 1.0.0-rc.4. |
| Vue 3 and Svelte 5 | Preview component-script macros and catalog delivery through Vite. Template-text extraction and rich-text components are outside the current scope. |
| Nuxt and SvelteKit | Separate Preview proofs for Node SSR, hydration, lazy loading, and request isolation. No dedicated npm packages are published. |
| Node.js backends | Request-local i18n for Hono, Express, and custom servers. |
| Rust applications | Preview build integration and an external-catalog runtime, published on crates.io as palamedes-build and palamedes-i18n. |
Use the framework overview to choose a host and try its demos. The stability policy defines the supported boundaries, including the Vue, Nuxt, Svelte, and SvelteKit proofs. The backend guide and Rust guide cover non-browser apps.
Use the scoped packages for application setup. Each package name links to its README; version and download badges link to npm.
| Package | Role | Version | Monthly downloads |
|---|---|---|---|
@palamedes/core |
App-facing i18n instance | ||
@palamedes/runtime |
Shared browser and server runtime | ||
@palamedes/react |
React components, macros, and locale helpers | ||
@palamedes/solid |
Solid components, macros, and locale helpers |
| Package | Role | Version | Monthly downloads |
|---|---|---|---|
@palamedes/vite-plugin |
Vite transforms and catalog delivery | ||
@palamedes/next-plugin |
Next.js integration | ||
@palamedes/tanstack |
TanStack Start middleware for React | ||
@palamedes/react-router |
React Router Framework Mode middleware and server entry | ||
@palamedes/remix |
Remix v3 adapter | ||
@palamedes/waku |
Waku interceptor |
| Package | Role | Version | Monthly downloads |
|---|---|---|---|
@palamedes/cli |
Native pmds CLI |
||
@palamedes/config |
Shared host configuration | ||
@palamedes/extractor |
Extraction API (Preview) | ||
@palamedes/transform |
Transform API (Preview) | ||
@palamedes/core-node |
Native Node binding (Preview) |
Native platform packages are selected by @palamedes/cli and
@palamedes/core-node. Node.js requirements vary by package; see the
platform support table.
The repository Node badge above describes the development and CI requirement.
palamedes and create-palamedes are reserved names with placeholder commands.
They do not provide an application installer or project generator.
Installation, configuration, and examples live on the website:
- First working translation and Next.js setup
- API reference, configuration, and CLI reference
- Migrating from Lingui, comparisons, and troubleshooting
- Architecture decisions
For repository sources and verification, see docs/,
examples/, and benchmarks/.
llms.txt and llms-full.txt provide context for
AI coding assistants.
Palamedes is maintained by Sebastian Software. See CONTRIBUTING.md for development setup, checks, and the release workflow. Report bugs or propose changes in GitHub issues.
Licensed under either of MIT or Apache-2.0 at your option, © Sebastian Software GmbH.
Neither license covers third-party marks or Streamline visual assets. See THIRD_PARTY_NOTICES.md for their separate terms and required attribution.
TypeScript, React & Rust consulting
Experts in Agentic Software Development
Work with us · More open source
Copyright © 2026 Sebastian Software GmbH