open-index/open-npm huggingface dataset:
npm package: @howdoi-cli/all
Description: Install all official howdoi knowledge bases in one shot.
Latest version: 3.1.0

# @howdoi-cli/all

Install all official howdoi knowledge bases in one shot.

## Install

```bash
npm install -g @howdoi-cli/all
```

This installs everything — core, unix, git, ssh, docker, and networking.

> **Note:** `@howdoi-cli/core` (the binary) is included as a dependency but may
> need to be installed explicitly if the binary isn't registered after installing `/all`:
> ```bash
> npm install -g @howdoi-cli/core
> ```

## Includes

- `@howdoi-cli/core` — engine and binary
- `@howdoi-cli/unix` — file management, text processing, inspection
- `@howdoi-cli/git` — git workflows
- `@howdoi-cli/ssh` — SSH keys, agent, config, tunnels
- `@howdoi-cli/docker` — containers, images, compose
- `@howdoi-cli/networking` — curl, dig, ping, ports

## Update everything

```bash
npm install -g @howdoi-cli/core
npm update -g @howdoi-cli/all
```

## License

MIT
npm package: @howdoi-cli/core
Description: The howdoi CLI engine — intent-based command discovery for the terminal.
Latest version: 3.1.0

# @howdoi-cli/core

The engine, renderer, and `howdoi` binary.

Install this first, then install whichever knowledge bases you need.

## Install

```bash
npm install -g @howdoi-cli/core
```

Then add knowledge bases:

```bash
npm install -g @howdoi-cli/unix
npm install -g @howdoi-cli/git
npm install -g @howdoi-cli/ssh
npm install -g @howdoi-cli/docker
npm install -g @howdoi-cli/networking
```

Or install everything at once:

```bash
npm install -g @howdoi-cli/all
```

## Usage

```bash
howdoi <what you want to do>
howdoi --list
howdoi --version
howdoi --help
```

See the [main README](https://github.com/SiphoChris/howdoi-cli) for full documentation.

## License

MIT
npm package: @howdoi-cli/docker
Description: Docker knowledge base for howdoi — containers, images, volumes, and more.
Latest version: 3.1.0

# @howdoi-cli/docker

**howdoi knowledge base — docker commands.**

Part of the [howdoi](https://github.com/SiphoChris/howdoi-cli) ecosystem.

## Install

Install core first, then this knowledge base:

```bash
npm install -g @howdoi-cli/core
npm install -g @howdoi-cli/docker
```

Or install everything at once:

```bash
npm install -g @howdoi-cli/all
```

## Usage

```bash
howdoi <what you want to do>
howdoi --list docker
howdoi --version
```

## Install more knowledge bases

```bash
npm install -g @howdoi-cli/unix
npm install -g @howdoi-cli/git
npm install -g @howdoi-cli/ssh
npm install -g @howdoi-cli/docker
npm install -g @howdoi-cli/networking
```

## License

MIT
npm package: @howdoi-cli/git
Description: Git knowledge base for howdoi — log, diff, stash, rebase, and more.
Latest version: 3.1.0

# @howdoi-cli/git

**howdoi knowledge base — git commands.**

Part of the [howdoi](https://github.com/SiphoChris/howdoi-cli) ecosystem.

## Install

Install core first, then this knowledge base:

```bash
npm install -g @howdoi-cli/core
npm install -g @howdoi-cli/git
```

Or install everything at once:

```bash
npm install -g @howdoi-cli/all
```

## Usage

```bash
howdoi <what you want to do>
howdoi --list git
howdoi --version
```

## Install more knowledge bases

```bash
npm install -g @howdoi-cli/unix
npm install -g @howdoi-cli/git
npm install -g @howdoi-cli/ssh
npm install -g @howdoi-cli/docker
npm install -g @howdoi-cli/networking
```

## License

MIT
npm package: @howdoi-cli/networking
Description: Networking knowledge base for howdoi — curl, netstat, ping, dig, and more.
Latest version: 3.1.0

# @howdoi-cli/networking

**howdoi knowledge base — networking commands.**

Part of the [howdoi](https://github.com/SiphoChris/howdoi-cli) ecosystem.

## Install

Install core first, then this knowledge base:

```bash
npm install -g @howdoi-cli/core
npm install -g @howdoi-cli/networking
```

Or install everything at once:

```bash
npm install -g @howdoi-cli/all
```

## Usage

```bash
howdoi <what you want to do>
howdoi --list networking
howdoi --version
```

## Install more knowledge bases

```bash
npm install -g @howdoi-cli/unix
npm install -g @howdoi-cli/git
npm install -g @howdoi-cli/ssh
npm install -g @howdoi-cli/docker
npm install -g @howdoi-cli/networking
```

## License

MIT
npm package: @howdoi-cli/ssh
Description: SSH knowledge base for howdoi — keys, agent, config, tunnels, and more.
Latest version: 3.1.0

# @howdoi-cli/ssh

**howdoi knowledge base — ssh commands.**

Part of the [howdoi](https://github.com/SiphoChris/howdoi-cli) ecosystem.

## Install

Install core first, then this knowledge base:

```bash
npm install -g @howdoi-cli/core
npm install -g @howdoi-cli/ssh
```

Or install everything at once:

```bash
npm install -g @howdoi-cli/all
```

## Usage

```bash
howdoi <what you want to do>
howdoi --list ssh
howdoi --version
```

## Install more knowledge bases

```bash
npm install -g @howdoi-cli/unix
npm install -g @howdoi-cli/git
npm install -g @howdoi-cli/ssh
npm install -g @howdoi-cli/docker
npm install -g @howdoi-cli/networking
```

## License

MIT
npm package: @howdoi-cli/unix
Description: Unix/Linux knowledge base for howdoi — file management, text processing, and more.
Latest version: 3.1.0

# @howdoi-cli/unix

**howdoi knowledge base — unix commands.**

Part of the [howdoi](https://github.com/SiphoChris/howdoi-cli) ecosystem.

## Install

Install core first, then this knowledge base:

```bash
npm install -g @howdoi-cli/core
npm install -g @howdoi-cli/unix
```

Or install everything at once:

```bash
npm install -g @howdoi-cli/all
```

## Usage

```bash
howdoi <what you want to do>
howdoi --list unix
howdoi --version
```

## Install more knowledge bases

```bash
npm install -g @howdoi-cli/unix
npm install -g @howdoi-cli/git
npm install -g @howdoi-cli/ssh
npm install -g @howdoi-cli/docker
npm install -g @howdoi-cli/networking
```

## License

MIT
npm package: @howdy39/npm-sample
Description: npm検証用リポジトリ
Author: howdy39
Latest version: 1.0.0

# npm-sample

## Installation

## Usage

## Contributing

1. Fork it!
2. Create your feature branch: `git checkout -b my-new-feature`
3. Commit your changes: `git commit -am 'Add some feature'`
4. Push to the branch: `git push origin my-new-feature`
5. Submit a pull request :D

## License
MIT

## Thanks
[npmで名前空間を持ったモジュールを公開する方法(scoped modules) | Web Scratch](https://efcl.info/2015/04/30/npm-namespace/)

[npmでパッケージを公開してみた手順の記録 - Qiita](https://qiita.com/hoshimado/items/c6f1484297d974f44f19)
npm package: @howdygo/rrweb-plugin-canvas-webrtc-record
Description: Plugin that live streams contents of canvas elements via webrtc
Author: justin@recordonce.com
Latest version: 2.0.0-alpha.43

# rrweb canvas webrtc plugin

Plugin that live streams contents of canvas elements via webrtc

## Example of live streaming via `yarn live-stream`

https://user-images.githubusercontent.com/4106/186701616-fd71a107-5d53-423c-ba09-0395a3a0252f.mov

## Instructions

### Record side

```js
// Record side

import rrweb from 'rrweb';
import { RRWebPluginCanvasWebRTCRecord } from 'rrweb-plugin-canvas-webrtc-record';

const webRTCRecordPlugin = new RRWebPluginCanvasWebRTCRecord({
  signalSendCallback: (msg) => {
    // provides webrtc sdp offer signal & connect message
    // make sure you send this to the replayer's `webRTCReplayPlugin.signalReceive(signal)`
    sendSignalToReplayer(msg); // example of function that sends the signal to the replayer
  },
});

rrweb.record({
  emit: (event) => {
    // send these events to the `replayer.addEvent(event)`, how you do that is up to you
    // you can send them to a server for example which can then send them to the replayer
    sendEventToReplayer(event); // example of function that sends the event to the replayer
  },
  plugins: [
    // add the plugin to the list of plugins, and initialize it via `.initPlugin()`
    webRTCRecordPlugin.initPlugin(),
  ],
  recordCanvas: false, // we don't want canvas recording turned on, we're going to do that via the plugin
});
```

### Replay Side

```js
// Replay side
import rrweb from 'rrweb';
import { RRWebPluginCanvasWebRTCReplay } from 'rrweb-plugin-canvas-webrtc-replay';

const webRTCReplayPlugin = new RRWebPluginCanvasWebRTCReplay({
  canvasFoundCallback(canvas, context) {
    console.log('canvas', canvas);
    // send the canvas id to `webRTCRecordPlugin.setupStream(id)`, how you do that is up to you
    // you can send them to a server for example which can then send them to the replayer
    sendCanvasIdToRecordScript(context.id); // example of function that sends the id to the record script
  },
  signalSendCallback(signal) {
    // provides webrtc sdp offer signal & connect message
    // make sure you send this to the record script's `webRTCRecordPlugin.signalReceive(signal)`
    sendSignalToRecordScript(signal); // example of function that sends the signal to the record script
  },
});

const replayer = new rrweb.Replayer([], {
  UNSAFE_replayCanvas: true, // turn canvas replay on!
  liveMode: true, // live mode is needed to stream events to the replayer
  plugins: [webRTCReplayPlugin.initPlugin()],
});
replayer.startLive(); // start the replayer in live mode

replayer.addEvent(event); // call this whenever an event is received from the record script
```

## More info

https://github.com/rrweb-io/rrweb/pull/976
npm package: @howdypix/server
Description: Server for the Photo Gallery
Author: Kevin Vicrey
Latest version: 0.1.2-alpha.0

# @howdypix/app-server

This process is responsible to:

- Watch the file changes
- Send to the workers what files to process
- Maintain the database of photos
- Expose a GraphQL endpoint to fetch the photos

# Authentication

The authentication is made with a JWT token attached to every request to the server. If the token is not valid (expired, or invalid), then the client is able to request another token thanks to its refreshToken.

To authenticate a GraphQL query, you just need add then `authenticate` parameter to the Query, as such:

```typescript
queryField("myQuery", {
  // If the user is null, the request is not authenticated.
  authorize: (root, args, ctx) => !!ctx.user

  // ...
});
```
npm package: @howdypix/shared-types
Description: Shared types across the HowdyPix applications.
Latest version: 0.1.0

# @howdypix/shared-types

This package exposes common typescript types to be consumed by the HowdyPix applications. For example, it might be the data types sent to RabbitMQ, and consumed on the other side, adding the same type check on both client and server side.
npm package: @howdypix/worker
Description: Process the pictures to extract information and create thumbnails.
Author: Kevin Vicrey
Latest version: 0.1.2-alpha.0

# @howdypix/app-worker

This process is responsible to:

- Wait for photos to process (exif, thumbnails)
- Send the result of the process to RabbitMQ

It is possible to start multiple workers that will process simultaneously the photos.
npm package: @howeel/tools
Description: 工具类库 - 基于 tsup vitest
Author: HoweelZhang
Latest version: 1.1.1

**💛 You can help the author become a full-time open-source maintainer by [sponsoring him on GitHub](https://github.com/sponsors/egoist).**

---

# my-ts-lib

[![npm version](https://badgen.net/npm/v/my-ts-lib)](https://npm.im/my-ts-lib) [![npm downloads](https://badgen.net/npm/dm/my-ts-lib)](https://npm.im/my-ts-lib)

## Using this template

- Search `my-ts-lib` and replace it with your custom package name.
- Search `egoist` and replace it with your name.

Features:

- Package manager [pnpm](https://pnpm.js.org/), safe and fast
- Release with [semantic-release](https://npm.im/semantic-release)
- Bundle with [tsup](https://github.com/egoist/tsup)
- Test with [vitest](https://vitest.dev)

To skip CI (GitHub action), add `skip-ci` to commit message. To skip release, add `skip-release` to commit message.

## Install

```bash
npm i my-ts-lib
```

## Sponsors

[![sponsors](https://sponsors-images.egoist.sh/sponsors.svg)](https://github.com/sponsors/egoist)

## License

MIT &copy; [EGOIST](https://github.com/sponsors/egoist)
npm package: @howell5/gi
Description: A CLI tool for managing GitLab project versions and releases with both interactive and command modes.
Latest version: 1.2.0

# gi-version-manager

A CLI tool for managing GitLab project versions and releases with both interactive and command modes.

## Prerequisites

This tool requires the following dependencies:

- Node.js >= 18
- [glab](https://gitlab.com/gitlab-org/cli) - GitLab CLI tool

```bash
# Install on macOS
brew install glab

# Install on Linux
# For Debian/Ubuntu
curl -s https://gitlab.com/gitlab-org/cli/-/releases/latest/downloads/glab_amd64.deb -o glab.deb
sudo dpkg -i glab.deb

# For other Linux distributions, visit:
# https://gitlab.com/gitlab-org/cli#installation
```

## Installation

```bash
npm install -g @howell5/gi
# or
pnpm add -g @howell5/gi
```

## Usage

### Interactive Mode

Use the interactive mode to select the release type from a menu:

```bash
gi r
# or
gi release
```

### Direct Command Mode

Create releases directly using commands:

```bash
gi patch  # Create a patch release (0.0.x)
gi minor  # Create a minor release (0.x.0)
gi major  # Create a major release (x.0.0)
gi alpha  # Create an alpha release (x.x.x-alpha.x)
gi beta   # Create a beta release (x.x.x-beta.x)
```

### Version Number Format

- Major: `vX.0.0`
- Minor: `vX.Y.0`
- Patch: `vX.Y.Z`
- Alpha: `vX.Y.Z-alpha.N`
- Beta: `vX.Y.Z-beta.N`

Where:

- X = major version
- Y = minor version
- Z = patch version
- N = pre-release number

## Development

### Install dependencies

```bash
pnpm install
```

### Development with hot reload

```bash
pnpm dev
```

### Build for production

```bash
pnpm build
```

### Run tests

```bash
pnpm test
```

### Lint files

```bash
pnpm lint
```

### Local Testing

To test the CLI locally:

```bash
npm link
# or
pnpm link
```

## Contributing

1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request

## License

MIT
npm package: @howells/claudestatus
Description: CLI to check Claude usage across multiple accounts
Latest version: 1.0.1

# Claude Status Dashboard

CLI to check Claude usage across multiple accounts.

## Features
- Add multiple Claude accounts (saved locally)
- Fetch usage from Claude API and display a simple dashboard
- Recommend the next best account to use

## Requirements
- Node.js 18+
- Chrome installed (Playwright uses your local Chrome)

## Usage
```bash
# One-off (after publish)
npx @howells/claudestatus@latest

# Or install globally
npm install -g @howells/claudestatus
claudestatus

# Add an account (opens Chrome for login)
claudestatus add <name>

# Refresh an account session
claudestatus refresh <name>

# List accounts
claudestatus list

# Show dashboard
claudestatus

# Quick recommendation only
claudestatus --quick
```

## Notes
- Account sessions are stored locally in `accounts/` (ignored by git).
- If Cloudflare blocks a session, re-run `refresh` for that account.

## License
MIT
npm package: @howells/lint
Description: Pinned Biome and Ultracite presets for Howells projects.
Latest version: 0.1.1

# `@howells/lint`

Pinned Biome and Ultracite presets for Howells projects.

The goal is not to invent a second lint philosophy. The goal is to:

- pin a single `@biomejs/biome` version
- pin a single `ultracite` version
- give every consumer the same small preset matrix
- discourage repo-local overrides unless the project has a genuinely unique constraint

## Install

```bash
pnpm add -D @howells/lint
```

## Presets

Choose the closest preset instead of starting from a generic base and patching it locally:

- `@howells/lint/biome/core`
- `@howells/lint/biome/react`
- `@howells/lint/biome/next`

These presets already:

- pin Biome and Ultracite transitively
- enable VCS ignore file support
- ignore common build output directories
- keep `ignoreUnknown` on so mixed repos do not need defensive local config
- enforce 2-space indentation consistently
- enable Tailwind CSS directives on DOM-oriented presets

## Usage

Node or non-React TypeScript package:

```json
{
  "extends": ["@howells/lint/biome/core"]
}
```

React package:

```json
{
  "extends": ["@howells/lint/biome/react"]
}
```

Next.js app:

```json
{
  "extends": ["@howells/lint/biome/next"]
}
```

## Binaries

Installers only need `@howells/lint` as a direct dependency. Use the package binaries instead of adding `@biomejs/biome` or `ultracite` separately:

- `howells-biome` proxies to the pinned Biome binary
- `howells-ultracite` proxies to the pinned Ultracite binary
- `howells-lint` defaults to `biome check .`
- `howells-format` defaults to `biome check . --write`

Example scripts:

```json
{
  "scripts": {
    "lint": "howells-lint",
    "lint:fix": "howells-format"
  }
}
```

Prefer explicit script targets over config churn when the only difference is scope:

```json
{
  "scripts": {
    "lint": "howells-lint apps/web packages/ui",
    "lint:fix": "howells-format apps/web packages/ui"
  }
}
```

## Rules

- Do not add local overrides just to preserve old ESLint behavior.
- Do not create local `base`, `shared`, or `custom` Biome wrappers.
- If multiple repos need the same exception, add or adjust a preset here.
- If a repo needs framework-specific linting, choose the matching preset instead of layering rules manually.
- Prefer inline `biome-ignore` comments for truly isolated exceptions over broad config overrides.

## Upstream

This package wraps:

- [Biome configuration docs](https://biomejs.dev/reference/configuration/)
- [Ultracite configuration docs](https://www.ultracite.ai/configuration)
npm package: @howells/stow-client
Description: Client-side SDK for Stow file storage
Latest version: 2.4.0

# @howells/stow-client

Client-side SDK for [Stow](https://stow.sh) file storage. Upload files directly from the browser with progress tracking.

## Installation

```bash
npm install @howells/stow-client
# or
pnpm add @howells/stow-client
# or
yarn add @howells/stow-client
```

## Quick Start

```typescript
import { StowClient } from "@howells/stow-client";

const stow = new StowClient("/api/upload");

// Upload a file from a file input
const fileInput = document.querySelector('input[type="file"]');
const file = fileInput.files[0];

const result = await stow.uploadFile(file, {
  onProgress: (progress) => {
    console.log(`Upload: ${progress.percent}%`);
  },
});

console.log(result.url);
```

## Important: Server Endpoint Required

This SDK uploads files through your server endpoint, not directly to Stow. Your server should use `@howells/stow-server` to handle the actual upload. This keeps your API key secure.

```
Browser → Your Server (/api/upload) → Stow
```

See `@howells/stow-next` for easy Next.js integration.

## API Reference

### `new StowClient(config)`

Create a new client instance.

```typescript
// Simple: just pass the endpoint
const stow = new StowClient("/api/upload");

// With config object
const stow = new StowClient({
  endpoint: "/api/upload",
});
```

### `uploadFile(file, options?)`

Upload a single file with progress tracking.

```typescript
const result = await stow.uploadFile(file, {
  route: "avatars", // optional folder/route
  onProgress: (progress) => {
    console.log(`${progress.loaded}/${progress.total} bytes (${progress.percent}%)`);
  },
});

// Result:
// {
//   key: "bucket-id/avatars/abc123.jpg",
//   url: "https://stow.sh/files/bucket-id/avatars/abc123.jpg",
//   size: 12345,
//   contentType: "image/jpeg"
// }
```

### `uploadFiles(files, options?)`

Upload multiple files sequentially.

```typescript
const results = await stow.uploadFiles(fileInput.files, {
  route: "gallery",
  onProgress: (progress) => {
    console.log(`Current file: ${progress.percent}%`);
  },
  onFileComplete: (result, index) => {
    console.log(`File ${index + 1} complete:`, result.url);
  },
  onFileError: (error, file, index) => {
    console.error(`File ${index + 1} failed:`, error.message);
  },
});
```

## Error Handling

```typescript
import { StowError } from "@howells/stow-client";

try {
  await stow.uploadFile(file);
} catch (error) {
  if (error instanceof StowError) {
    if (error.code === "ABORTED") {
      console.log("Upload was cancelled");
    } else {
      console.error(`Upload failed: ${error.message}`);
    }
  }
}
```

## TypeScript

Full TypeScript support:

```typescript
import type {
  StowClientConfig,
  UploadResult,
  UploadProgress,
  UploadOptions,
} from "@howells/stow-client";
```

## Why XHR?

This SDK uses XMLHttpRequest instead of fetch because **fetch doesn't support upload progress events**. XHR's `upload.onprogress` is the only way to show real upload progress to users.

## License

MIT
npm package: @howells/typescript-config
Description: Pinned wrappers and overlays around @total-typescript/tsconfig.
Latest version: 0.1.0

# `@howells/typescript-config`

Pinned wrappers and thin overlays around `@total-typescript/tsconfig`.

The goal is not to invent a second tsconfig philosophy. The goal is to:

- pin a specific upstream `@total-typescript/tsconfig` version
- give every consumer the same decision matrix
- keep only a few house overlays for framework and runtime cases

## Install

```bash
npm install -D @howells/typescript-config
```

## Core Presets

These map directly to the Total TypeScript decision tree:

- `@howells/typescript-config/bundler-dom-app`
- `@howells/typescript-config/bundler-dom-library`
- `@howells/typescript-config/bundler-dom-library-monorepo`
- `@howells/typescript-config/bundler-no-dom-app`
- `@howells/typescript-config/bundler-no-dom-library`
- `@howells/typescript-config/bundler-no-dom-library-monorepo`
- `@howells/typescript-config/tsc-dom-app`
- `@howells/typescript-config/tsc-dom-library`
- `@howells/typescript-config/tsc-dom-library-monorepo`
- `@howells/typescript-config/tsc-no-dom-app`
- `@howells/typescript-config/tsc-no-dom-library`
- `@howells/typescript-config/tsc-no-dom-library-monorepo`

## Overlays

These are intentionally small:

- `@howells/typescript-config/nextjs`
- `@howells/typescript-config/react-library`

## Examples

Next.js app:

```json
{
  "extends": "@howells/typescript-config/nextjs"
}
```

React package in a monorepo:

```json
{
  "extends": "@howells/typescript-config/react-library"
}
```

Non-DOM app checked by TypeScript but built elsewhere:

```json
{
  "extends": "@howells/typescript-config/bundler-no-dom-app"
}
```

Library emitted by `tsc`:

```json
{
  "extends": "@howells/typescript-config/tsc-no-dom-library"
}
```

## Rules

- Do not put consumer-local `paths` or `baseUrl` in these shared presets.
- Do not put workspace-specific `types` in shared presets unless the preset is explicitly runtime-specific.
- Do not reintroduce a universal `base.json` that hides runtime and emit decisions.
- Treat changes in compiler behavior as breaking changes when versioning this package.

## Upstream

This package follows Matt Pocock's guidance and wraps:

- `https://www.totaltypescript.com/tsconfig-cheat-sheet`
- `https://github.com/total-typescript/tsconfig`