Skip to content

nlink-jp/util-series

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

337 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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
json-to-table Go Format a JSON array into text, Markdown, HTML, CSV, PNG, or Slack Block Kit tables
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)
csv-to-json Go Convert CSV data to a JSON array
csv-editor Go + React (Wails) CSV/TSV viewer & editor GUI for macOS/Windows — ARM64-native, handles UTF-8/Shift_JIS/CP932
json-to-sqlite Go Load JSON data into SQLite with automatic schema inference and evolution
lookup Go Enrich JSON/JSONL streams by matching fields against CSV/JSON data sources
markdown-viewer Go Single-binary local Markdown viewer — renders GFM, Mermaid, and syntax-highlighted code in the browser
pptx-to-markdown Python Convert .pptx presentations to structured Markdown for LLM analysis
json-filter Go Extract, validate, prettify, and repair JSON from arbitrary text streams
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
eml-to-jsonl Go Parse .eml files and output structured JSONL — headers, body, attachments
msg-to-jsonl Go Parse Outlook .msg files and output structured JSONL — same schema as eml-to-jsonl
cclaude Bash Containerized Claude Code — run Claude Code in an isolated container with project isolation
mcp-guardian Go MCP governance proxy — zero-dependency single binary for tool call auditing, constraint learning, and loop detection

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. Create the repository under nlink-jp/.
  2. Follow CONVENTIONS.md from the start.
  3. Add it as a submodule here: git submodule add git@github.com:nlink-jp/<tool>.git
  4. Add a row to the table above.

About

Umbrella repository for nlink-jp general-purpose CLI utilities

Topics

Resources

Stars

Watchers

Forks

Contributors