Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

txiki.js is a small, open-source JavaScript runtime built on QuickJS-ng and libuv. It combines JavaScript and module support with selected web-style APIs and system capabilities, including networking, file operations, child processes, and an HTTP server. It is an option for scripts and applications that need those features; the documented feature set does not establish full Node.js compatibility.

What is txiki.js?

The txiki.js project describes it as “a small and powerful JavaScript runtime.” The name comes from txikia, Basque for “small” or “tiny.” QuickJS-ng provides its JavaScript engine, while libuv supplies its platform layer. The project targets modern ECMAScript and says it aims to be WinterTC compliant; that is an aim, not a claim of completed certification.

Like other runtimes, txiki.js runs JavaScript outside a web browser. Its documented capabilities combine language features, selected Web Platform APIs, and operating-system-facing functions. Which APIs are available matters more than the runtime’s small-size branding when deciding whether it suits an existing application.

Which JavaScript and module features does it support?

The Runtime Features documentation describes support for the ES2025 specification as “almost complete.” That qualifier is important: the project does not describe its ES2025 support as fully complete.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Its module features include standard ES modules, HTTP imports, import attributes for JSON, text, and bytes, and import maps. These let projects use familiar module syntax and several web-oriented import patterns, but they do not by themselves guarantee compatibility with every Node.js package or tooling workflow.

What APIs and runtime capabilities are documented?

The runtime’s documented feature set covers both web-style interfaces and system operations. The project repository lists Web Platform APIs such as fetch, WebSocket, Console, setTimeout, Crypto, and Web Workers. It also names modules including tjs:sqlite, tjs:ffi, tjs:path, and tjs:hashing.

The features and API Reference pages describe additional capabilities:

  • Networking: TCP, TLS, UDP, and Unix sockets, plus DNS lookup through getaddrinfo.
  • Web serving: an HTTP server, alongside client-side fetch support.
  • Operating-system access: file operations, signal handling, child processes, and process and system APIs.
  • Other runtime tools: WASI, standalone executable generation, and a built-in test runner.

These are project-documented features, not a blanket promise that every API behaves exactly like a browser or another JavaScript runtime. Check the API Reference for the particular interface your application depends on.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

WebAssembly availability depends on the build

The API Reference says WebAssembly support is enabled by default through the documented build option BUILD_WITH_WASM=ON. A build made with WebAssembly disabled will fail when importing tjs:wasi. The docs recommend checking tjs.engine.features.wasm to determine whether WebAssembly is available in the runtime you are using.

How do you install txiki.js?

The official Getting Started guide lists package managers, prebuilt binaries, mise, and source builds. The listed prebuilt binary architectures are macOS arm64 and x86_64, and Windows x86_64; that list does not establish prebuilt binaries for every operating system and architecture.

Install route Platform or use
Homebrew macOS and Linux, according to the Getting Started guide.
WinGet or Scoop Windows.
Prebuilt binaries macOS arm64 and x86_64; Windows x86_64.
mise Per-project version management.
Build from source Clone the repository and build locally; the repository documents the quick path below.

Build from source

The repository documents this quick build sequence:

  1. git clone --recursive https://github.com/saghul/txiki.js.git
  2. cd txiki.js
  3. make
  4. Launch the resulting runtime with ./build/tjs.

This is the project’s documented quick path; build requirements and details can vary by platform, so consult the repository if compilation fails.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

How do you run JavaScript with txiki.js?

Once tjs is installed and available on your PATH, the Getting Started guide shows three basic ways to use it:

  • Evaluate an inline expression: tjs eval "console.log('hello world')".
  • Run a script file: tjs run hello.js.
  • Start the REPL by running tjs with no arguments.

If you built from source using the documented quick path, invoke ./build/tjs in place of tjs.

Which platforms are supported?

The Getting Started guide lists GNU/Linux, macOS, and Windows as supported platforms. It also mentions other Unix systems with the qualification “please test!”—so treat those as unconfirmed for your specific setup rather than as an equally supported target. The documented binary architecture list is narrower than the supported-platform list, and WebAssembly availability can depend on build configuration.

Is txiki.js a Node.js replacement?

The available project documentation establishes txiki.js’s own language, module, Web API, and system feature set; it does not establish complete Node.js API or package compatibility. If you are considering a migration, check each required Node.js API, native dependency, and package against txiki.js’s API Reference and test the application on the target platform. The documented feature list alone is not enough to promise a drop-in replacement.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What should you know about project status?

The official GitHub releases page is the place to check current versions and changes. Release information changes over time, so consult that page for the latest status rather than relying on a version number that may have become outdated.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.