npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@donkeylabs/cli

v2.3.0

Published

CLI for @donkeylabs/server - project scaffolding and code generation

Readme

@donkeylabs/cli

CLI tool for @donkeylabs/server - project scaffolding and code generation.

Installation

bun add -D @donkeylabs/cli

Or install globally:

bun add -g @donkeylabs/cli

Commands

Interactive Mode

Run without arguments for an interactive menu:

donkeylabs

Initialize Project

Create a new project:

# Interactive project setup
donkeylabs init

# Server-only project
donkeylabs init --type server

# SvelteKit + adapter project
donkeylabs init --type sveltekit

# Initialize in specific directory
donkeylabs init my-project

Generate Types

Generate TypeScript types from your plugins and routes:

donkeylabs generate
# or
donkeylabs gen

This generates:

  • registry.d.ts - Plugin registry types
  • context.d.ts - App context with merged schemas
  • routes.ts - Route input/output types
  • client.ts - API client (or adapter-specific client)

Plugin Management

Create and manage plugins:

# Create a new plugin (interactive)
donkeylabs plugin create

# Create a named plugin
donkeylabs plugin create auth

# List plugins
donkeylabs plugin list

Configuration

Create a donkeylabs.config.ts in your project root:

import { defineConfig } from "@donkeylabs/server";

export default defineConfig({
  // Glob patterns for plugin files
  plugins: ["./src/plugins/**/index.ts"],

  // Generated types output directory
  outDir: ".@donkeylabs/server",

  // Server entry file (for route extraction)
  entry: "./src/index.ts",

  // Optional: Client generation
  client: {
    output: "./src/client/api.ts",
  },

  // Optional: Adapter for framework-specific generation
  adapter: "@donkeylabs/adapter-sveltekit",
});

Context-Aware Menus

The interactive mode is context-aware:

From project root:

  • Create New Plugin
  • Initialize New Project
  • Generate Types
  • Generate Registry
  • Generate Server Context

From inside a plugin directory (src/plugins/<name>/):

  • Generate Schema Types
  • Create Migration
  • Back to Global Menu

Templates

The CLI includes starter templates:

  • templates/starter - Basic server project
  • templates/sveltekit-app - Full SvelteKit + adapter project

Usage with package.json

Add scripts to your package.json:

{
  "scripts": {
    "gen:types": "donkeylabs generate",
    "new:plugin": "donkeylabs plugin create"
  }
}

License

MIT