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

@tynd/cli

v0.3.1

Published

Tynd framework CLI — scaffold, dev, build native TypeScript desktop apps

Downloads

382

Readme

@tynd/cli

The CLI for Tynd — scaffold, dev, build, and ship native desktop apps in TypeScript.

Prerequisites

Bun is required. The CLI binary has a #!/usr/bin/env bun shebang and uses Bun-native APIs (Bun.build, Bun.file, Bun.spawn, Bun.hash) — it will not run under Node.js.

# macOS / Linux / WSL
curl -fsSL https://bun.sh/install | bash

# Windows (PowerShell)
powershell -c "irm bun.sh/install.ps1 | iex"

End users of apps you ship with tynd build do not need Bun — it's packed into the final binary (full mode) or replaced by an embedded JS engine (lite mode).

Quick start

bunx @tynd/cli create my-app
cd my-app
tynd dev

Commands

tynd create [name]           # Scaffold a new project (interactive if no args)
  --framework <fw>           # react | vue | svelte | solid | preact | lit | angular
  --runtime   <r>            # lite (recommended) | full

tynd dev                     # Dev mode: HMR frontend + hot-reload backend
tynd start                   # Run from cached bundles, no rebuild, no watcher
tynd build                   # Single-file distributable binary
  --bundle [targets]         # + native installers: app,dmg,deb,rpm,appimage,nsis,msi
  --outfile <path>           # Custom output path (default: release/<name>[.exe])

tynd init                    # Add Tynd to an existing project
tynd clean                   # Remove build artifacts (.tynd/cache, release/)
tynd validate                # Check config + binary availability
tynd info [--json]           # Environment diagnostics (Bun version, WebView, paths)
tynd upgrade                 # Bump @tynd/* deps to latest
tynd keygen [--out <base>]   # Generate an Ed25519 keypair for the auto-updater
tynd sign <file> --key <k>   # Sign a file with an updater private key

# Global flags
tynd --verbose <cmd>         # Debug-level logs (also sets TYND_LOG=debug in host)
tynd --quiet <cmd>           # Errors only

Scaffolded layout

my-app/
├── tynd.config.ts        ← runtime + paths + bundle metadata
├── package.json
├── backend/
│   └── main.ts           ← backend entry — app.start() here
└── src/
    └── main.tsx          ← frontend source (React/Vue/…)

Supported frameworks

React, Vue, Svelte, Solid, Preact, Lit, Angular. Vite-backed except Angular (uses Angular CLI). Any SPA works via tynd init.

Blocked (SSR): Next.js, Nuxt, SvelteKit, Remix, Gatsby, SolidStart, Angular Universal, Qwik City, Astro, TanStack Start, Vike. Use the pure-SPA variant.

See FRAMEWORKS.md.

Typed config

import type { TyndConfig } from "@tynd/cli"

export default {
  runtime: "lite",
  backend: "backend/main.ts",
  frontendDir: "dist",
  window: { title: "My App", width: 1200, height: 800 },
  bundle: { identifier: "com.example.myapp" },  // required for --bundle
} satisfies TyndConfig

Installers (tynd build --bundle)

| Host OS | Formats | |---|---| | macOS | .app, .dmg | | Linux | .deb, .rpm (needs rpmbuild), .AppImage | | Windows | NSIS .exe setup, .msi (via WiX v3) |

Build tools (NSIS, WiX, appimagetool) auto-download to .tynd/cache/tools/ on first use. Cross-compilation is not supported — run on each target host (see the build-host.yml workflow in the repo).

Code signing is post-build — see SIGNING.md.

Related packages

  • @tynd/core — backend + frontend API surface
  • @tynd/host — prebuilt native binaries (auto-installed)

License

Apache-2.0