Our take
Newless than six months old and changing fast- Activity
- 53
- Community
- 14
- Issues
- 21
- Pull requests
- 73
+0 stars in the last 10 days
- Fewer contributors than 86% of the projects we track
Lenso offers a clearly separated, opt-in architecture for Bun applications, but its very recent and fast-changing state calls for a cautious evaluation before production adoption.
Good fit if
- You are building with Bun and TypeScript and want explicit plugin dependencies and cleanup.
- You prefer adding web, database, task, or agent integrations only where the application needs them.
- Your team can review a rapidly changing project whose recent work is heavily concentrated in one contributor.
Look elsewhere if
- You need an established release history or broad contributor ownership before adopting a framework.
- Your project needs a built-in account system, automatic HTTP mounts, or an agent runtime with authority granted for you.
- You require a repository with tests reported in its project facts before evaluation.
All health signals
| Last commit | 2026-10-12 (today) |
|---|---|
| Commits, last 90 days | 100+ |
| Releases, last 12 months | 0 |
| Contributors | 2 (top contributor: 96% of commits) |
| Issues closed, last 90 days | 0 |
| Pull requests merged, last 90 days | 42 (typically merged in 0 days) |
| Project age | 4 days |
Checked on 2026-10-13 with the GitHub API.
Overview
Lenso is a Bun-first TypeScript framework for composing applications from plugins that expose ordinary async services. Core manages exact plugin dependencies and resource cleanup, while separate packages add capabilities such as web requests, authentication, databases, durable tasks, and agent-facing operations.
It is aimed at developers who want framework-managed setup and lifetimes without putting business logic behind framework-specific service abstractions. Capabilities are opt-in, and declaring an operation does not automatically expose it over HTTP or grant permission to call it.
Key Features
- Compose apps from plugins with explicit dependency declarations and instance bindings.
- Register resource cleanup during setup, with rollback on setup failure and ordered shutdown.
- Validate per-instance configuration from values, environment variables, or local files before business setup.
- Add optional CLI and web interfaces that can invoke the same service and input schema.
- Use separate packages for authentication adapters, database resources, object storage, durable tasks, and Workers.
- Select and authorize operations for MCP or management integrations without automatic mounts or implicit grants.
- Extend build and development workflows through Engine plugins.
Use Cases
- A TypeScript team building a Bun service from independently testable business modules and explicitly owned resources.
- Developers who want CLI and HTTP access to call the same validated service logic.
- Applications that need optional PostgreSQL or SQLite resources, file storage, or durable PostgreSQL-backed jobs.
- Teams exposing a carefully selected set of authorized operations to an MCP client or management consumer.
What you need
Detected in the repository
- Node.js (from package.json)
- Automated checks on GitHub Actions
Getting Started
From a checkout, install dependencies and run the example:
bun install --frozen-lockfile
bun dev
See the README for the greeting example, package documentation, and templates.
License in Plain Words
No standard license was detected. Without a license, the default copyright rules apply: you may read the code, but not reuse it. Check the repository or ask the authors.
Considerations
The project is marked new and has been changing quickly, with no release in the measured past year. Recent development activity is high, but most contributions come from one person; the measured facts also show no issues closed in the recent period. The repository facts do not report tests, so teams should inspect the available checks and run their own evaluation.
The README describes Bun-first usage, while package metadata identifies Node.js as a runtime requirement. Confirm the runtime and package versions you intend to use. Several capabilities require infrastructure or platform-specific setup, including PostgreSQL for durable tasks and database options, and Workers bindings for D1 or R2 examples. Authentication adapters do not provide a deployed account system, and optional Manage or MCP declarations do not themselves mount endpoints or authorize callers. The provided repository data does not specify a license, so verify the license and its obligations before using or distributing the code.
Found this useful?
Share it with someone who would like lenso.