agentsclimarketplace

Hakobu skill

Skill hakobujs/hakobu-skill

Official HakobuJS Agent Skill

Install
npx -y skills add hakobujs/hakobu-skill

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Generates CLI commands, package.json config, and programmatic API code for Hakobu, the modern Node.js packager. Use when working with @hakobu/hakobu, packaging Node.js apps into standalone cross-platform executables, building binaries, or migrating from vercel/pkg or @yao-pkg/pkg. Covers targets, signing, bundle mode, native addons, and CI/CD workflows.

SKILL.md

4.7 KB, as published. Nobody here has run it

Hakobu

Hakobu is the modern Node.js packager — the successor to @yao-pkg/pkg. It packages your Node.js app into a standalone executable that runs without Node.js installed. Supports cross-platform builds for Linux, macOS, and Windows. Requires Node.js 24+.

Quick Reference

# Package the current project
npx @hakobu/hakobu .

# Multi-target build
npx @hakobu/hakobu . --target node24-linux-x64,node24-win-x64

# Bundle mode for TypeScript
npx @hakobu/hakobu . --bundle --entry src/cli.ts

# Show available targets and cache
hakobu targets

# Analyze project without packaging
hakobu inspect .

# Check readiness for a specific target
hakobu doctor . --target node24-linux-x64

Target Format

CLI target spec: node24-{platform}-{arch}. The node24 prefix is fixed (Node 24.x runtime).

Available platforms: linux, macos, win, linuxstatic. Available architectures: x64, arm64.

Active Targets

CLI TargetTier
node24-linux-x641
node24-linux-arm641
node24-win-x641
node24-macos-arm641
node24-macos-x642
node24-linuxstatic-x642
node24-win-arm642

Use --target all for all published targets. See references/targets.md.

Package.json Config

Minimal example:

{
  "hakobu": {
    "entry": "src/index.js",
    "assets": ["templates/**", "views/**"],
    "target": "node24-linux-x64"
  }
}

Legacy "pkg" field is accepted with migration warnings. See references/config.md.

Programmatic API

The exec() function:

import { exec } from '@hakobu/hakobu';

await exec(['./my-app', '--target', 'node24-linux-x64', '--output', './dist/app']);

exec() takes an array of CLI arguments (same as command line). See references/cli-flags.md.

Bundle Mode

For TypeScript and monorepo projects, use --bundle to pre-bundle with Rolldown before packaging:

npx @hakobu/hakobu . --bundle --entry src/cli.ts --external electron

See references/bundle-mode.md.

Code Templates

Basic packaging command

npx @hakobu/hakobu . --target node24-linux-x64 --output dist/my-app

Package.json "hakobu" config

{
  "name": "my-app",
  "version": "1.0.0",
  "main": "src/index.js",
  "hakobu": {
    "entry": "src/index.js",
    "assets": [
      "templates/**",
      "views/**",
      "config/default.json"
    ],
    "target": "node24-linux-x64",
    "outputPath": "dist",
    "macos": {
      "sign": true,
      "bundleId": "com.example.my-app",
      "notarize": true
    },
    "linux": {
      "appDir": true,
      "categories": ["Utility"]
    }
  }
}

GitHub Actions workflow

name: Build Executables
on:
  push:
    tags: ['v*']

jobs:
  build:
    strategy:
      matrix:
        include:
          - os: ubuntu-latest
            target: node24-linux-x64
          - os: macos-latest
            target: node24-macos-arm64
          - os: windows-latest
            target: node24-win-x64
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '24'
      - run: npm ci
      - run: npx @hakobu/hakobu . --target ${{ matrix.target }} --output dist/
      - uses: actions/upload-artifact@v4
        with:
          name: build-${{ matrix.target }}
          path: dist/

Programmatic exec() call

import { exec } from '@hakobu/hakobu';

async function buildAll() {
  const targets = ['node24-linux-x64', 'node24-macos-arm64', 'node24-win-x64'];

  for (const target of targets) {
    await exec(['.', '--target', target, '--output', `dist/${target}/my-app`]);
    console.log(`Built for ${target}`);
  }
}

buildAll();

Detailed References

TopicReference
All CLI flagsreferences/cli-flags.md
Config optionsreferences/config.md
Target platformsreferences/targets.md
Signing & distributionreferences/distribution.md
Bundle modereferences/bundle-mode.md
Migration from pkgreferences/migration.md
Common patternsexamples/common-patterns.md

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.