Skip to content

Latest commit

 

History

585 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

util-series

A collection of general-purpose data transformation and processing CLI utilities maintained under the nlink-jp organisation.

Each tool is a standalone project with its own repository, release cycle, and documentation. This umbrella repository tracks them together as git submodules and hosts shared conventions.

Tools

Tool Language Description
active-lens Go Content-free Mac activity tracker — classifies operating/present/away and derives a per-day work log. darwin/arm64
active-lens-gui Swift macOS menu-bar front-end over active-lens — current session state and a calendar-style work timeline
ask-gemini-mcp Go MCP server exposing ask_gemini(prompt) — second-opinion consultations via Vertex AI Gemini
ask-llm-mcp Go MCP server exposing ask_llm(prompt) — second opinions via an OpenAI-compatible endpoint (e.g. LM Studio)
cclaude Bash Containerized Claude Code — run Claude Code in an isolated container with project isolation
chrome-pilot-mcp Go Zero-dependency browser-automation MCP — 27 tools speaking the Chrome DevTools Protocol directly
claude-usage-lens Go Token usage & cost analysis for Claude Code — parses local session logs into a durable SQLite store
claude-usage-lens-gui Swift macOS menu-bar app showing today's Claude usage cost, with Swift Charts analysis
csv-editor Go + React (Wails) (archived) CSV/TSV viewer & editor GUI — superseded by grid-edit
csv-to-json Go Convert CSV data to a JSON array
data-agent Go + React (Wails) (archived) Data-analysis desktop GUI — superseded by shell-agent-v2
data-analyzer Go Large-scale JSON/JSONL analysis using local LLMs — sliding window + progressive summarization
data-toolbox-mcp Go MCP server exposing DuckDB analysis and containerized Python execution — workspace-scoped
eml-to-jsonl Go Parse .eml files and output structured JSONL — headers, body, attachments
gem-image Go Image generation and editing CLI via Vertex AI Gemini
gem-query Go Natural language data analysis CLI — SQL generation for DuckDB/SQLite via Vertex AI Gemini
gem-rag Python Gemini-powered RAG CLI for Markdown documents — Vertex AI embeddings + DuckDB
gem-search Go Agentic web search via Vertex AI Gemini with Google Search Grounding
gem-summary Go Text summarisation CLI via Vertex AI Gemini — chunked/parallel fallback for long inputs
gem-transcribe Python Audio transcription CLI on Vertex AI Gemini — speaker inference, structured JSON
grid-edit Swift Native macOS CSV/TSV editor (AppKit) — csv-editor's successor; Japanese-encoding & delimiter auto-detection, IME-safe editing
image-forge Go Local diffusion image-generation engine + model manager for Apple Silicon (stable-diffusion.cpp, CLI + MCP)
image-forge-gui Swift Native macOS front-end for image-forge — composer, batch generation, gallery
instant-translate Swift macOS menu-bar translator on the on-device Translation framework — no LLM, no network; reports its state and explains its failures. darwin/arm64
json-filter Go Extract, validate, prettify, and repair JSON from arbitrary text streams
json-to-sqlite Go Load JSON data into SQLite with automatic schema inference and evolution
json-to-table Go Format a JSON array into text, Markdown, HTML, CSV, PNG, or Slack Block Kit tables
jstats Go SPL-style stats aggregations for JSON streams — count, avg, p95, stdev, values, and more
jviz Go Visualize JSON arrays as interactive charts in the browser — bar, line, pie, table with live SSE updates
load-spinner Swift macOS menu-bar CPU/GPU load indicator — spinner speed proportional to load. darwin/arm64
lookup Go Enrich JSON/JSONL streams by matching fields against CSV/JSON data sources
mail-analyzer Go Suspicious email analyzer — rule-based indicators + Gemini content analysis for .eml/.msg
mail-analyzer-gui Rust + Svelte (Tauri) macOS desktop GUI for mail-analyzer — drag & drop email analysis
mail-analyzer-local Go Local LLM version of mail-analyzer — via OpenAI-compatible API (LM Studio, Ollama)
markdown-viewer Go Single-binary local Markdown viewer — renders GFM, Mermaid, and syntax-highlighted code in the browser
mcp-bridge Go Bridges stdio MCP clients to Streamable HTTP MCP servers that require a pre-registered OAuth client (Slack, GitHub Apps, Entra ID) — zero dependencies
mcp-guardian Go (archived) MCP governance proxy — bridging half superseded by mcp-bridge; the governance layer was never adopted in practice
msg-to-jsonl Go Parse Outlook .msg files and output structured JSONL — same schema as eml-to-jsonl
nvme-lens Swift macOS menu-bar monitor for NVMe SSD temperature and endurance — reads SMART through IOKit directly (no smartmontools, no root, no daemon) and judges on the hottest Temperature Sensor rather than the composite value, which understates the hotspot by 17–21 °C; six-hour sparklines in the panel, up to ninety days across seven metrics in History with outages drawn as gaps, and alerts on sustained heat, endurance, media errors and abnormal power-cycle rates. Internal and Thunderbolt/USB4 NVMe only — macOS has no SMART path to USB-attached drives, which are listed with the reason
pptx-to-markdown Python Convert .pptx presentations to structured Markdown for LLM analysis
quick-translate Swift macOS menu-bar translation via a local LLM (OpenAI-compatible API)
rex Go Extract fields from text using named regex capture groups — outputs JSON
sdate Go Calculate timestamps using Splunk-like relative time modifiers (e.g., -1d@d)
sensor-lens Go Collect SwitchBot temperature, humidity and CO2 into a local SQLite history — quota-aware polling, CSV backfill for what the API cannot serve
sensor-lens-gui Swift macOS menu-bar readout of your SwitchBot sensors — six-hour sparklines, CO2 alerts, and it collects while it runs
share-mounter Swift macOS menu-bar app that auto-mounts SMB shares at login without opening a Finder window (NetFS)
shell-agent Go + Swift (archived) macOS LLM chat & agent — superseded by shell-agent-v2
shell-agent-v2 Go + React (Wails) Desktop app for interactive data analysis — session DuckDB, hybrid LLM, container sandbox
splunk-mcp Go MCP server for Splunk search over the REST API — async job pattern, exact result counts
status-lens Swift macOS menu-bar watcher for Statuspage-hosted status pages (Claude, GitHub, …) — per-profile label + shape symbol, degradation/recovery notifications
url-shelf Swift macOS menu-bar shelf of URL notes kept as plain .webloc files — per-entry private-window opening. darwin/arm64
video-studio-mcp Go MCP server assembling narrated presentation MP4s from image + audio page manifests (ffmpeg)
voice-scribe Go Local speech-to-text with speaker diarization (whisper.cpp + sherpa-onnx); CLI and MCP server
voice-studio-mcp Go MCP server for local multi-speaker Japanese speech synthesis (AivisSpeech Engine)
webhook-relay Go Authenticated webhook receiver — writes payloads to GCS via Cloud Run Service
zip-porter Swift Windows-safe ZIP creation/extraction GUI+CLI — junk-free, NFC/CP932 names, AES-256/ZipCrypto passwords; hardened extraction (zip-slip, decompression bombs, quarantine propagation). darwin/arm64

Design Philosophy

  • Pipe-friendly: stdout is data, stderr is diagnostics. Every tool reads from stdin and writes to stdout.
  • Unix composable: output in plain text or JSON; designed to work with jq, grep, xargs, and each other.
  • Single binary: no runtime dependencies; download and run.
  • Minimal surface: each tool does one thing well.

Build

All tools use a unified Makefile with consistent targets:

make build      # Build for the current platform → dist/<binary>
make build-all  # Cross-compile for all platforms → dist/<binary>-<goos>-<goarch>[.exe]
make package    # Build and create .zip archives → dist/<binary>-<version>-<goos>-<goarch>.zip
make test       # Run the test suite
make clean      # Remove dist/

Target platforms: linux/amd64, linux/arm64, darwin/amd64, darwin/arm64, windows/amd64.

Note for json-to-sqlite: this tool depends on go-sqlite3 (CGO). Linux and Windows cross-compilation uses Podman (or Docker) containers.

Note for pptx-to-markdown: this is a Python project managed with uv. It does not use make; use uv sync to install dependencies and uv run pytest to run tests.

Shared Conventions

See CONVENTIONS.md for coding, documentation, and release standards that apply across all tools in this series.

Adding a New Tool

  1. Develop in the workspace root _wip/ following the org CONVENTIONS.md (Starting a New Project), then create the repository under nlink-jp/.
  2. Add it as a submodule here: git submodule add https://github.com/nlink-jp/<tool>.git
  3. Add a row to the table above (check-org.sh fails otherwise).

About

Umbrella repository for nlink-jp general-purpose CLI utilities

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Contributors