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

@ikenga/contract

v0.9.1

Published

Shared contract for the Ikenga pkg system: manifest schema, RPC types, Engine interface, capability scopes.

Downloads

795

Readme

@ikenga/contract

Build Version License Discussions

The single source of truth for how the Ikenga shell, pkgs, and engines talk to each other.

What it is

@ikenga/contract is the shared TypeScript package that defines the wire between the Ikenga shell, its packages, and its engine adapters: the manifest schema, the RPC envelope, the Engine interface, and the capability scope catalogue. It's intentionally small and stable — bumping its major version is an event coordinated across the shell and every published pkg.

Install

pnpm add @ikenga/contract

In the workspace, this resolves as workspace:*.

What's in here

| Module | Exports | |--------|---------| | @ikenga/contract/manifest | ikenga-pkg.toml schema (Zod) — ManifestSchema, Manifest type | | @ikenga/contract/rpc | Shell ↔ pkg postMessage RPC envelope, request/response types | | @ikenga/contract/engine | Engine interface, Session, EngineEvent types | | @ikenga/contract/scopes | Capability scope catalogue (tasks:read, engine:invoke, …) | | @ikenga/contract/artifact | Artifact manifest schema (Zod) — ArtifactManifestSchema, ArtifactManifest type, refresh / data-source / fallback sub-schemas |

Artifact manifest

The artifact manifest is the JSON block embedded in <script type="application/json" id="ikenga-manifest">…</script> (single-file artifacts) or in manifest.json (folder mode). It's a separate concept from the pkg manifest — pkgs are heavyweight Tauri-side mini-apps; artifacts are portable HTML docs that render anywhere and light up with live data inside the shell.

  • Source of truth: src/artifact.ts (Zod).
  • Generated JSON Schema: schemas/artifact/v0.json — regenerate with pnpm generate:schemas after schema edits.
  • Published at: https://royalti-io.github.io/ikenga-contract/schemas/artifact/v0.json ($id stamped at generation time).
  • Fixtures (the three v0 example artifacts) live in src/artifact-fixtures/ and are gated by pnpm test.

Versioning

Strict semver. Pkgs declare "contract": "^1" and the kernel checks compatibility at install time.

Source of truth

The Manifest schema mirrors the Rust struct in Royalti-io/ikenga at src-tauri/src/pkg/manifest.rs. The Rust kernel parses pkg manifest.json files; this package is a TS-side validator and types-only mirror for tooling (CLI, registry build). To change the manifest, change the Rust struct first and update this schema in lockstep.

Status

v0.2.0 — manifest realigned to the real Rust schema (was a speculative parallel in v0.1.0). RPC method catalogue, engine interface, and capability scopes are still in place but unused by the kernel today; treat them as forward-looking.

Links

License

Apache-2.0 — see LICENSE.

Contributing & community

Issues and PRs welcome. Start a thread in Discussions.