open-index/open-npm huggingface dataset:
npm package: @frankgalindo/mirror-repo
Description: [![Node.js Package](https://github.com/frankgalindo/mirror-repo-cli/actions/workflows/npm-publish.yml/badge.svg?branch=main)](https://github.com/frankgalindo/mirror-repo-cli/actions/workflows/npm-publish.yml) [![npm version](https://img.shields.io/npm/v/@
Author: Frank Galindo
Latest version: 1.0.0

[![Node.js Package](https://github.com/frankgalindo/mirror-repo-cli/actions/workflows/npm-publish.yml/badge.svg?branch=main)](https://github.com/frankgalindo/mirror-repo-cli/actions/workflows/npm-publish.yml)
[![npm version](https://img.shields.io/npm/v/@frankgalindo/mirror-repo.svg?style=flat-square)](https://www.npmjs.com/package/@frankgalindo/mirror-repo)

# `@frankgalindo/mirror-repo`

🏗 CLI to help to the mirror from a GIT repository to another

## Installation

```bash
npm install -g @frankgalindo/mirror-repo
# or use NPX to do not install globally
npx @frankgalindo/mirror-repo
```
## Usage

### Parameters

| Param        | Type   | Required | Description                            |
|--------------|--------|----------|----------------------------------------|
| --sourceRepo | string |    [X]   | URL from the **source** GIT repository |
| --targetRepo | string |    [X]   | URL from the **target** GIT repository |
| --y          | Bool   |          | Skip confirmation prompt               |


### Example

```bash
mirror-repo --sourceRepo https://github.com/FrankWendel/teste-source-1 --targetRepo https://github.com/FrankWendel/teste-target-1
```

If you don't provide the target and the source repos as parameters the CLI will ask you to do it:
```
❯ mirror-repo
? Please enter the source repository URL: https://github.com/FrankWendel/teste-source-1
? Please enter the target repository URL: https://github.com/FrankWendel/teste-target-1
? This command will override the target repo, do you want to continue? (Y/n) Yes
```

### Disclamer 
This type of command will override everything in the target repository, so you must have the corrects permissions to do that.

# Contribute

Fell free to contribute 😊

To run the project locally you will need:
- Node v16.x.x
- NPM

First Install the npm dependencies:
```
npm install
```

Link the project into you global NPM:
```
npm link
```

Now you can change the code and then test it by the command line.

## Road map
- Better messages (text and colors)
- Better error handling
- Tests
- Debug

## Collaborators

- Frank Galindo <https://www.linkedin.com/in/frank-galindo/>

## License

MIT
npm package: @frankhe/component-lib
Description: A collection of shadcn/ui components built with React, TypeScript, and Tailwind CSS
Author: Frank He
Latest version: 0.5.0

In order to build library, we need to update

1. Package.json to export css,
2. in the build script, we are running copy-css command
3. move react/react-dom to peerDependency
4. both vite.config.ts and .storybook/main.ts needs to have same alias settings

pnpm dlx shadcn@latest add https://registry.lloydrichards.dev/registry/tooltip-story
Then modify storybook, remove the testing, and also upate the action reference, no need to have it
npm package: @frankhommers/opencode-plugin-logger
Description: A JSONL session event logger plugin for OpenCode
Author: Frank Hommers
Latest version: 1.0.3

# Session Logger Plugin for OpenCode

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

A JSONL session event logger plugin for [OpenCode](https://opencode.ai). Logs chat messages and tool executions as structured JSONL files, organized by session.

Inspired by [opencode-plugin-simple-memory](https://github.com/cnicolov/opencode-plugin-simple-memory) by Kris Nicolov.

## Setup

1. Add the plugin to your [OpenCode config](https://opencode.ai/docs/config/):

   ```json
   {
     "$schema": "https://opencode.ai/config.json",
     "plugin": ["@frankhommers/opencode-plugin-logger"]
   }
   ```

2. Enable logging via the `logger_set` tool or configuration file.

## Configuration

The plugin supports its own config files:

- Global defaults: `~/.config/opencode/logger.json`
- Per-project override: `.opencode/logger.json`

Project config overrides global config.

Example:

```json
{
  "logger": {
    "enabled": true,
    "scopes": [],
    "dir": "${project}/.agent-session-logs"
  }
}
```

Supported placeholders:

- `${home}`
- `${project}` (workspace/project root)
- `${workspace}` (alias of `${project}`)
- `${date}`
- `${env:VAR_NAME}`

## Tools

| Tool | Description |
|------|-------------|
| `logger_set` | Enable/disable logger and set scope filters |
| `logger_status` | Show active logger configuration |

## Log Structure

Logs are organized by session:

```
.agent-session-logs/
  2026-03-20-fix-auth-bug/
    main.jsonl              # Main session events
    explore-ses_abc.jsonl   # Subagent events
    codex-ses_def.jsonl     # Another subagent
```

Each line is a JSON object with fields like:

```json
{
  "ts": "2026-03-20T10:00:00.000Z",
  "event": "chat_message",
  "session_id": "ses_main",
  "parent_session_id": null,
  "root_session_id": "ses_main",
  "agent": "main",
  "message_id": "msg_1",
  "model": { "providerID": "anthropic", "modelID": "claude-opus-4" }
}
```

## Events Logged

- `chat_message` — Chat messages with model info and parts
- `tool_execute_before` — Tool call with args (before execution)
- `tool_execute_after` — Tool result with output (after execution)

## Local Development

```bash
git clone https://github.com/frankhommers/opencode-plugin-logger.git
cd opencode-plugin-logger
bun install
```

Point your OpenCode config to the local checkout:

```json
{
  "$schema": "https://opencode.ai/config.json",
  "plugin": ["file:///absolute/path/to/opencode-plugin-logger"]
}
```
npm package: @frankhommers/opencode-smart-title
Description: OpenCode plugin that automatically generates meaningful session titles using AI and smart context selection
Author: Dan Mindru
Latest version: 0.2.0

# Smart Title Plugin

Auto-generates meaningful session titles for your OpenCode conversations using AI.

This fork is maintained at `frankhommers/opencode-smart-title` and published as `@frankhommers/opencode-smart-title`.

## What It Does

- Watches your conversation and generates short, descriptive titles
- Updates automatically when the session becomes idle (you stop typing)
- Uses OpenCode's unified auth - no API keys needed
- Works with any authenticated AI provider
- Custom title format with placeholders (`{title}`, `{cwd}`, `{cwdTip}`, `{cwdTip:git}`)
- Custom prompt support for title generation style/language
- Directory exclusion to skip title generation for specific paths
- Robust config validation and merging

## Installation

```bash
npm install @frankhommers/opencode-smart-title
```

Add to `~/.config/opencode/opencode.json`:

```json
{
  "plugin": ["@frankhommers/opencode-smart-title"]
}
```

## Configuration

The plugin supports both global and project-level configuration:

- **Global:** `~/.config/opencode/smart-title.jsonc` - Applies to all sessions
- **Project:** `.opencode/smart-title.jsonc` - Overrides global config

The plugin creates a default global config on first run.

```jsonc
{
  // Enable or disable the plugin
  "enabled": true,

  // Enable debug logging
  "debug": false,

  // Optional: Use a specific model (otherwise uses smart fallbacks)
  // "model": "anthropic/claude-haiku-4-5",

  // Optional: Custom prompt for title generation
  // "prompt": "Generate a short descriptive title for this conversation.",

  // Update title every N idle events (1 = every time you pause)
  "updateThreshold": 1,

  // Optional: Directories to exclude from title generation
  // "excludeDirectories": ["/home/user/.heartbeat"],

  // Title format with placeholders:
  // - {title} - AI-generated title based on conversation
  // - {cwd} - Full current working directory path
  // - {cwdTip} - Last folder name of cwd (e.g., "my-project")
  // - {cwdTip:N} - Last N folder segments (e.g., {cwdTip:2} -> "github/my-project")
  // - {cwdTip:N:sep} - Last N segments with custom separator
  // - {cwdTip:git} - Segments from git root to cwd (falls back to tip if no .git found)
  // - {cwdTip:git:sep} - Same with custom separator
  "titleFormat": "{title}"
}
```

### Example Formats

| Format | Example Output |
|--------|----------------|
| `{title}` | `Debugging API errors` |
| `[{cwdTip}] {title}` | `[my-project] Debugging API errors` |
| `[{cwdTip:2}] {title}` | `[github/my-project] Debugging API errors` |
| `[{cwdTip:2: - }] {title}` | `[github - my-project] Debugging API errors` |
| `[{cwdTip:git}] {title}` | `[my-project] Debugging API errors` (if .git is in my-project) |
| `[{cwdTip:git: - }] {title}` | `[src - components] Debugging API errors` (if .git is 2 levels up) |
| `{title} ({cwdTip})` | `Debugging API errors (my-project)` |

## License

MIT
npm package: @frankhommers/opencode-yolo
Description: OpenCode plugin that auto-replies to assistant messages so you don't have to manually confirm or approve
Author: Frank Hommers
Latest version: 0.1.2

# opencode-yolo

OpenCode plugin that auto-replies to assistant messages so you don't have to manually confirm, approve, or answer clarification questions.

## Install

```bash
npm install @frankhommers/opencode-yolo
```

Add to your OpenCode config (`~/.config/opencode/opencode.json` for global, or `.opencode/opencode.json` for per-project):

```json
{
  "plugin": ["@frankhommers/opencode-yolo"]
}
```

Add the command definition to `~/.config/opencode/commands/yolo.md` (or `.opencode/commands/yolo.md`):

```md
---
name: yolo
description: Toggle or inspect YOLO mode (on/off/aggressive/status)
subtask: false
arguments:
  - name: action
    description: "One of: on, off, aggressive, status, start"
    required: false
---
```

## Modes

- **off** — Plugin is passive. No auto-replies.
- **on** — Replies to detected questions, proceed statements, and soft permission asks.
- **aggressive** — Everything `on` does, plus sends a continuation prompt for any assistant message that doesn't match a pattern.

## Replies

| Trigger | Reply |
|---------|-------|
| Proceed/ready statements ("I'll proceed", "Ik ga verder", "Ready for feedback") | "Please execute it, so that we reach the final result in the best way possible. Just execute don't ask." |
| Questions, action requests, soft permission asks ("Should I?", "Kies", "If you want") | "You choose what's best and please execute it so that we reach the final result in the best way possible. Just execute, don't ask." |
| No match (aggressive only) | "What can we do now to reach the final result in the best way possible?" |

Pattern matching is bilingual: English and Dutch.

## Commands

- `/yolo` — Toggle on/off
- `/yolo on` — Enable normal mode
- `/yolo aggressive` — Enable aggressive mode
- `/yolo off` — Disable
- `/yolo status` — Show current mode
- `/yolo start` — Kick off work with current mode

## Config file

YOLO stores its mode per project in `.yolo.json`. Add it to your `.gitignore`.

## Development

```bash
npm install
npm test
npm run build
```

## License

MIT
npm package: @franki/tiny
Description: Removes all spaces from a string
Latest version: 3.0.0

# @franki/tiny

[![npm (scoped)](https://img.shields.io/npm/v/@franki/tiny.svg)](https://www.npmjs.com/package/@franki/tiny)
[![npm bundle size (minified)](https://img.shields.io/bundlephobia/min/@franki/tiny.svg)](https://www.npmjs.com/package/@franki/tiny)

Removes all spaces from a string.

## Install

```
$ npm install @franki/tiny
```

## Usage

```js
const tiny = require("@franki/tiny");

tiny("So much space!");
//=> "Somuchspace!"

tiny(1337);
//=> Uncaught TypeError: Tiny wants a string!
//    at tiny (<anonymous>:2:41)
//    at <anonymous>:1:1
npm package: @franki/x-diff
Description: A light toolkit to diff Object.
Latest version: 1.0.1

# x-diff

x-diff is a light toolkit to diff two object

Support

1. [x] diff simple object
2. [x] diff simple array
3. [x] diff object in array
4. [x] diff complex object
5. [x] diff complex array

Result

```js
// use x-diff
import XDiff from 'x-diff'

const { diff } = new XDiff()
diff({ a: 1, c: 1, e: [{a: 1}] }, { a: 2, d: 1, e: [{b: 1}] })

// diff result
{
  "before": {
    "a": 1,
    "c": 1,
    "e": [
      {
        "a": 1,
        "diff_a": "delete",
        "diff_b": "delete"
      }
    ],
    "diff_c": "delete",
    "diff_d": "delete",
    "diff_a": "update",
    "diff_e": "update"
  },
  "after": {
    "a": 2,
    "d": 1,
    "e": [
      {
        "b": 1,
        "diff_a": "add",
        "diff_b": "add"
      }
    ],
    "diff_c": "add",
    "diff_d": "add",
    "diff_a": "update",
    "diff_e": "update"
  }
}
```
npm package: @frankieseh/toy_robot
Description: A production-ready CLI application that simulates a toy robot moving on a 5x5 table
Author: Frankie Sehrawat
Latest version: 0.0.2

# Toy Robot Simulator

A CLI application that simulates a toy robot moving on a configurable grid table, written in TypeScript with strict typing, layered architecture, and high test coverage.

## Features

- File and interactive stdin command processing
- Commands: `PLACE`, `MOVE`, `LEFT`, `RIGHT`, `REPORT`, `HELP`
- Boundary-safe movement on a configurable table (Default: 5x5)
- Clean layering across domain, application, and infrastructure
- Usable as both CLI and importable library API

## Requirements

- Node.js `24.0.0` or newer
- npm

## Installation

### Install globally

```bash
npm install -g @frankieseh/toy_robot
```

### Or use with npx (no installation required)

```bash
npx @frankieseh/toy_robot
```

### Development setup

```bash
git clone https://github.com/frankieseh/toy_robot.git
cd toy_robot
npm install
npm run build
```

## Usage

### Run from file

```bash
toy_robot examples/example1.txt
```

### Interactive mode

```bash
toy_robot
```

Then enter commands line-by-line. `REPORT` outputs state and closes the interactive session.

## Command Reference

- `PLACE X,Y,F` — place robot on table (must be first valid command)
- `MOVE` — move one step forward
- `LEFT` — rotate 90° counterclockwise
- `RIGHT` — rotate 90° clockwise
- `REPORT` — print `X,Y,DIRECTION`
- `HELP` — print command help

## Example

Input:

```
PLACE 1,2,EAST
MOVE
MOVE
LEFT
MOVE
REPORT
```

Output:

```
3,3,NORTH
```

## Library Usage

Install as a dependency:

```bash
npm install @frankieseh/toy_robot
```

Import and use:

```
import { Simulator, Table } from '@frankieseh/toy_robot';

const simulator = new Simulator(new Table(5, 5));
simulator.executeCommand('PLACE 0,0,NORTH');
simulator.executeCommand('MOVE');
const output = simulator.executeCommand('REPORT');
console.log(output.message); // 0,1,NORTH
```

## License

MIT (See LICENSE.md)
Copyright (c) 2026 Frankie Sehrawat