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

hikkaku

v0.3.4

Published

<img src="https://raw.githubusercontent.com/pnsk-lab/hikkaku/refs/heads/main/docs/assets/logo.svg" alt="Hikkaku Logo" width="128" height="128" align="right" />

Readme

Hikkaku

NPM Version codecov

Docs | Playground

Scratch with TypeScript.

Installation

bun add hikkaku # Bun
deno add npm:hikkaku # Deno
pnpm add hikkaku # pnpm
yarn add hikkaku # Yarn
npm install hikkaku # npm

Scaffold with create-hikkaku

Generate a new project from the official template (templates/base):

npx create-hikkaku@latest my-hikkaku-app
# or
bunx create-hikkaku@latest my-hikkaku-app

Common options:

  • -y, --yes: skip prompts and use defaults
  • --pm <pm>: force package manager (bun, deno, npm, pnpm, yarn)
  • --agents, --no-agents: include or exclude AGENTS.md
  • --link-claude, --no-link-claude: create or skip CLAUDE.md -> AGENTS.md
  • --skills, --no-skills: run or skip skills setup after scaffolding
  • --ref <git-tag>: use a specific template tag (default: create-hikkaku@<version>)

After scaffolding:

cd my-hikkaku-app
bun install
bun dev

Usage

Basic Usage

import { Project } from 'hikkaku'
import { IMAGES } from 'hikkaku/assets'
import {
  getMouseX,
  gotoXY,
  procedureBoolean,
  procedureLabel,
  whenFlagClicked,
  forever,
  switchCostumeTo,
} from 'hikkaku/blocks'

const project = new Project()

const sprite1 = project.createSprite('Sprite1') // create sprite
const cat1 = sprite1.addCostume({
  ...IMAGES.CATCHER_A,
  name: 'cat1',
}) // create costume

sprite1.run(() => {
  // event blocks (hat blocks) should be inside run() directly
  whenFlagClicked(() => {
    // this scope is for when flag clicked
    gotoXY(0, 0) // go to x:0 y:0
    switchCostumeTo(cat1) // switch costume to cat1
    forever(() => {
      gotoXY(getMouseX(), 0) // follow mouse x
    }) // control block. This can nest other blocks.
  })
  // or other event blocks
})

console.log(project.toScratch()) // get Scratch project JSON

By runnning this code, you will get a Scratch project JSON that you can load in Scratch editor.

With Vite

Integrate Hikkaku with Vite to develop Scratch projects with hot-reloading.

Put vite.config.ts in your project root:

import hikkaku from 'hikkaku/vite'
import { defineConfig } from 'vite'

export default defineConfig({
  plugins: [
    hikkaku({
      entry: './src/main.ts',
    }),
  ],
})

Then, put your Scratch project code in src/main.ts:

import { Project } from 'hikkaku'
import { IMAGES } from 'hikkaku/assets'
import { moveSteps, whenFlagClicked } from 'hikkaku/blocks'

const project = new Project()

const cat = project.createSprite('cat')

cat.addCostume({
  ...IMAGES.CAT_A,
  name: 'cat-a',
})
cat.run(() => {
  whenFlagClicked(() => {
    moveSteps(10)
  })
})

export default project

bun vite and open http://localhost:5173 to see your Scratch project in action!

You can HMR powered by Vite Environment API:

https://github.com/user-attachments/assets/1ff5d190-f8ee-46c4-bc78-8dbdf2879e15

Vibe Code with skills

Hikkaku has a skills for AI Agents, so you can vibe code with AI such as Codex, Claude Code, OpenCode and etc.

bunx skills add pnsk-lab/hikkaku/packages/skill # Bun
deno run -NRWE --allow-run="git" --allow-sys="homedir" npm:skills add pnsk-lab/hikkaku/packages/skill # Deno
pnpx skills add pnsk-lab/hikkaku/packages/skill # pnpm
yarn dlx skills add pnsk-lab/hikkaku/packages/skill # Yarn
npx skills add pnsk-lab/hikkaku/packages/skill # npm

Build project

With Vite Plugin:

vite build