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

@cutos/cli

v1.0.6

Published

CUTOS command line tools for Capability, Provider and LWA development.

Readme

@cutos/cli

CUTOS command line tools for Capability, Provider and LWA development.

Install

npm install -g @cutos/cli

Or install it in a project and prefix commands with npx:

npm install --save-dev @cutos/cli
npx cutos --version

During local development:

npm install
npm run build
node dist/index.js --help

Commands

cutos --help
cutos --version
cutos login --username <username>
cutos device list
cutos create lwa <name>
cutos create device-capability <name>
cutos capability build [path]
cutos provider build [path]
cutos provider validate [path]
cutos provider package [path]
cutos provider upload [path]
cutos provider list [name]
cutos provider publish <id>
cutos lwa build [path]
cutos lwa deploy [name] --device <device-id>
cutos lwa list [name]
cutos lwa package [path]
cutos lwa publish [path]
cutos lwa validate [path]

cutos create device-capability creates a CUTOS 4.0 Device Capability project containing one npm SDK and one Server Provider:

cutos create device-capability printer
cd printer
npm install

cd sdk
cutos capability build
npm pack
npm publish

cd ../provider
cutos provider build
cutos login --username office
cutos provider upload
cutos provider list device-printer-provider
cutos provider publish <id>

The command uses <name> as the raw deviceType. Core derives capability.device.<name>, while the generated Provider manifest uses device-<name> for compatibility with CUTOS Server.

The generated SDK package is named @cutos/device-<name>. The default Provider package is device-<name>-provider; concrete implementations can append a vendor or model identifier such as device-<name>-provider-r17.

cutos capability build treats capability.contract.ts as the editable source of truth. It regenerates capability.contract.json, the SDK and Provider types, and provider/config.json, then builds only the Capability SDK in sdk/. The SDK package version must match the Capability Contract version.

Capability SDK packaging and publishing use the native npm workflow from the sdk/ directory so npm continues to manage registry configuration and authentication:

cd sdk
npm pack
npm publish

cutos provider validate accepts either a Capability project directory, its provider/ directory, or a packaged .drv file. cutos provider package creates provider/release/<provider-name>-v<version>.drv.

cutos provider upload without a path validates the current Provider, creates a fresh .drv in provider/release/, checks metadata with POST /driver/check, uploads the package through POST /file, and creates an unpublished Provider record through POST /driver. It returns the Provider id with state=0.

cutos provider list [name] lists uploaded and published Provider records and displays their id, version, type, state, and platform. The name argument is a server keyword filter, not an exact match, so hello can also match hello-device. Use the full Provider name for a narrower result and --all to fetch every page.

cutos provider publish <id> calls PUT /driver/{id}/publish and changes the uploaded Provider to state=1. Uploaded Providers are private by default, and both commands use the session saved by cutos login.

cutos create lwa creates a project from the official vite-vue3 template by default:

cutos create lwa my-lwa
cd my-lwa
npm install
cutos lwa build

cutos login --username office
cutos lwa publish
cutos lwa list my-lwa
cutos device list --online
cutos lwa deploy --device <device-id>

Use cutos create lwa my-lwa --template vite-vue3 to select the template explicitly. cutos lwa publish uploads the freshly built .lwa; device list supplies the target id used by lwa deploy.

cutos lwa validate supports:

  • A build output directory such as dist/.
  • A packaged .lwa zip archive.

When [path] is omitted, the CLI validates ./dist if it exists, otherwise it validates the current directory.

The validator follows docs/CUTOS-LWA-Package-Spec-v0.md.

The official vite-vue3 LWA template is bundled in this package, so cutos create lwa works after npm installation.

cutos lwa build runs the target project's npm run build:app, validates dist/, and creates release/<config.name>-v<config.version>.lwa. The dist/ directory contains only runnable Web assets; release/ contains publishable LWA packages.

cutos lwa deploy deploys a published LWA to a CUTOS device/sign. The device id is the ID shown by cutos device list. When [name] is omitted, it reads public/config.json and deploys the latest published version for config.name. Use --lwa with the id shown by cutos lwa list when you need to deploy an exact LWA.

cutos lwa deploy --device 1433
cutos lwa deploy my-lwa --device 1433
cutos lwa deploy --lwa 3048 --device 1433
cutos lwa deploy --device 1433 --dry-run
cutos lwa deploy --device 1433 --draft-only

--dry-run resolves the target LWA and device without changing server state. --draft-only sets the LWA as the device draft program without publishing it to the runtime. Full deploy requires the target device to be online.

cutos lwa list lists published LWA content from the CUTOS content library. When [name] is omitted, it reads public/config.json and filters by config.name. Version suffixes such as -v0.1.3 are ignored for matching, so all published versions of the same LWA are shown together.

cutos lwa list
cutos lwa list my-lwa
cutos lwa list my-lwa --all
cutos lwa list --all-names

cutos lwa package validates a build directory and creates the .lwa package in the sibling release/ directory. When [path] is omitted, it packages ./dist.

cutos login calls the CUTOS Server POST /user/session API and saves the returned session to ~/.cutos/config.json.

The default server is https://cut-os.com/rest/sv.

cutos login --username admin
cutos login --server http://host/rest/sv --username admin

For automation:

echo "$CUTOS_PASSWORD" | cutos login --server http://host/rest/sv --username admin --password-stdin

cutos device list lists CUTOS devices visible to the current account. In the current server API, this command reads device/sign rather than device/box. It shows device id, device name, and online/offline status.

cutos device list
cutos device list --online
cutos device list --offline
cutos device list --key lobby
cutos device list --all

cutos lwa publish validates the package, creates a CUTOS content record, uploads thumbnail.png when present, and uploads the .lwa file with CLI progress output. It uses OSS upload automatically for CLOUD servers and the multipart content upload API for local servers.

cutos lwa publish
cutos lwa publish release/my-lwa-v1.0.0.lwa
cutos lwa publish --folder-id 12 --name my-lwa-v1.0.0
cutos lwa publish --upload-mode oss

Planned Commands

cutos lwa dev