What is Visulima?
Visulima is a curated collection of small, focused TypeScript libraries that solve the problems you hit every day when shipping real applications. Things like parsing CLI args, formatting terminal output, handling files and paths, debugging errors with readable stack traces, building APIs, sending emails, redacting secrets, and dozens more.
Every package is standalone. Install one, install ten, mix them with whatever framework you already use. No lock-in, no umbrella runtime.
Why Visulima?
- Modular by design. Every package has a single responsibility and ships independently. Use
@visulima/fs without touching anything else.
- Modern runtimes. Pure ESM that works in Node.js, Bun, edge runtimes, and (where it makes sense) the browser.
- TypeScript-native. Written in TypeScript with strict types, full inference, and
"sideEffects": false for clean tree-shaking.
- Production-tested. High test coverage, Vitest-driven, used in real products.
- Well-documented. Every package has a dedicated doc page on visulima.com, plus a README with examples and API reference.
- MIT licensed. Free to use, free to fork.
Drop-in replacements
Already using one of these? Swap it out without changing your code:
Powered by native Rust
Performance-critical packages ship with NAPI bindings and a JS fallback. Fast where it matters, portable everywhere. The packages that need a Rust toolchain are developed in visulima/vis.
Install
Install only the packages you need:
# pnpm
pnpm add @visulima/pail @visulima/fs
# npm
npm install @visulima/pail @visulima/fs
# yarn
yarn add @visulima/pail @visulima/fs
Every package has a dedicated doc page on visulima.com with usage examples and full API reference.
What's inside
Packages are grouped into eight categories. Jump to the section you need:
- API: routing, CRUD, OpenAPI, pagination, health checks
- Data Manipulation: strings, objects, bytes, HTML, redaction, locales
- Email: multi-provider sending, templates, disposable-domain detection
- Error Debugging: stack traces, source maps, loggers, dev overlays
- Filesystem: human-friendly fs helpers, path utilities, cache directories
- Storage: S3, Azure, GCS, and local file uploads with a unified API
- Terminal: CLIs, colors, spinners, progress bars, tables, TUI
- Tooling: task runner, secret scanner, tsconfig parser, package utilities
All Packages
API
| Package | Version | Description |
|---|
| @visulima/health-check | | Define async health checks for your dependencies and service, and expose their status on a health endpoint. |
| @visulima/jsdoc-open-api | | Generate OpenAPI/Swagger documentation from JSDoc comments, via CLI or webpack plugin. |
| @visulima/pagination | | Simple limit/offset and page-based pagination helper for Node.js APIs. |
Data Manipulation
Email
Error Debugging
| Package | Version | Description |
|---|
| @visulima/dev-toolbar | | Devtools is a set of tools for building advanced devtools for your application |
| @visulima/error | | Error with more than just a message, stacktrace parsing. |
| @visulima/error-handler | | Error handlers for use in development and production environments. |
| @visulima/inspector | | Inspect utility for Node.js and Browsers. |
| @visulima/ono | | Ono is an error-parsing library that pretty prints JavaScript errors on a web page or the terminal. |
| @visulima/pail | | Highly configurable Logger for Node.js, Edge and Browser. |
Filesystem
Notification
| Package | Version | Description |
|---|
| @visulima/notification | | A reusable, ESM-only, edge-ready multi-channel notification library with SMS, push, chat, in-app and webhook providers |
Storage
| Package | Version | Description |
|---|
| @visulima/storage | | Server-side file storage abstraction with S3, Azure, GCS, local filesystem and 20+ backends, plus TUS, multipart and REST upload handlers. |
| @visulima/storage-client | | The upload client library. Simple and easy file uploads for React | Vue | Solid | Svelte. |
Terminal
Tooling
| Package | Version | Description |
|---|
| @visulima/find-ai-runner | | Detect and invoke AI CLI tools (Claude, Gemini, Codex, Copilot, Cursor, Crush, Amp, Kimi, Qwen, OpenCode, Droid) installed on the system |
| @visulima/package | | Find monorepo roots and package managers, and parse package.json, package.yaml and package.json5 files, with catalog resolution. |
| @visulima/tsconfig | | Find and/or parse the tsconfig.json file from a directory path. |
Workflow
| Package | Version | Description |
|---|
| @visulima/cron-parser | | Fast, zero-dependency cron expression parser with time zone and DST support, for Node.js, Bun and Workers |
| @visulima/workflow | | Edge-ready, ESM-only durable workflow engine with resumable steps, delays, external-event waits and a pluggable store. |
Getting Started
Visit https://visulima.com/learn to get started with Visulima.
Documentation
Visit https://visulima.com/docs to view the full documentation. The site is built from visulima/docs, which collects the docs from the repositories below.
Repositories
| Repository | What is in it |
|---|
| visulima/visulima | This monorepo: the TypeScript packages, one per folder under packages/ |
| visulima/vis | The Rust-backed packages: vis, vis-mcp, task-runner, task-runner-client, secret-scanner and tui |
| visulima/packem | The packem bundler |
| visulima/docs | The documentation site at visulima.com |
Community
The Visulima community can be found on GitHub Discussions, where you can ask questions, voice ideas, and share your projects.
To chat with other community members you can join the Visulima Discord.
Our Code of Conduct applies to all Visulima community channels.
Contributing
Please see our contributing.md.
Good First Issues
We have a list of good first issues that contain bugs that have a relatively limited scope. This is a great place to get started, gain experience, and get familiar with our contribution process.