A collection of CLI tools and libraries.
New to nlink-jp tools? Start here:
- Getting Started Guide (JA) — どのツールに何が必要か、判定フロー付きガイド
- Getting Started Guide (EN)
| Setup Guide | What it covers |
|---|---|
| Vertex AI Setup | gcloud CLI, ADC authentication, config.toml |
| Local LLM Setup | LM Studio, model download, API server |
| Python + uv Setup | Python, uv package manager |
| Go Build Setup | Go, make, or pre-built binaries |
Pipe-friendly, Unix-composable CLI clients for external services. Authenticate as the human user, not a bot.
| Tool | Service | Description |
|---|---|---|
| confl-cli | Confluence | Confluence Cloud CLI — list, search, read, export |
| gem-cli | Gemini | Gemini CLI client — multimodal prompts, streaming, grounding, structured output via Vertex AI |
| llm-cli | Local LLM | CLI client for local LLMs (LM Studio, Ollama) — streaming, batch, multi-image VLM, structured output |
| scli | Slack | Terminal Slack client — channels, messages, DMs, search |
| splunk-cli | Splunk | CLI client for the Splunk REST API — run searches, poll jobs, fetch results |
Pipe-friendly Slack tools for ChatOps automation and monitoring.
| Tool | Description |
|---|---|
| md-to-slack | Markdown → Slack Block Kit JSON filter — pipe into scat to post formatted messages |
| scat | General-purpose content poster — send text, files, and Block Kit messages to Slack from stdin or files |
| slack-router | Slack Slash Command daemon — routes commands to local shell scripts via Socket Mode |
| stail | Read-only Slack CLI — stream channel messages in real time (tail -f) or export history to JSON |
| swrite | Bot-oriented Slack poster — post text, Block Kit, attachments, and files from shell pipelines; unfurl control; server mode for Docker/Kubernetes |
AI-augmented tools for threat intelligence, product risk assessment, and incident response analysis.
| Tool | Description |
|---|---|
| ai-ir | AI-powered incident response — analyzes Slack IR exports to generate summaries, activity reports, and reusable tactics |
| ai-ir2 | Next-gen IR analysis — one-stop Gemini pipeline producing Markdown, self-contained HTML, and knowledge documents |
| cti-graph | Local-first attack graph analysis — STIX 2.1 ingestion, PIR-driven weighting, choke-point detection, FastAPI API |
| cti-primer | Local-first CTI PIR generation — converts business context into Priority Intelligence Requirements using local LLMs or dictionary-only mode |
| ioc-collector | Research security incidents from URLs or CVE IDs — extracts IoCs into Markdown and STIX 2.1 bundles |
| ir-timeline | IR timeline recorder — single-binary, browser-based tool for tracking IR events with text, images, tags, and time deltas |
| ir-tracker | Live IR tracker — continuous ingestion, segmented analysis, and timeline visualization for ongoing incidents via Gemini |
| mail-triage | GCS-based email triage — classifies eml/msg files with Gemini LLM and posts results to Slack via Cloud Run Jobs |
| news-collector | News collection agent — collects, tags, summarizes, translates, and delivers curated news digests via Gemini + Slack |
| product-research | Research products and services — outputs ToS, privacy, and data security analysis as structured reports |
Works in progress. APIs, features, and interfaces may change without notice.
| Tool | Lang | Description |
|---|---|---|
| agent-skeleton | Python | Autonomous agent skeleton — plan-approve-execute loop, per-tool approval, 2-tier memory compression, MCP support |
| agentic-web-search | Go | |
| llm-othello | Go | Browser-based Othello against a local LLM — server-side move generation via OpenAI-compatible API |
| m5-clock | C++ | NTP-synchronized digital clock for M5Stack Core2 — night mode, RTC backup, SD card config |
| m5-data-receiver | Bash/CFn | Serverless AWS backend for m5-vehicle-logger — API Gateway + Lambda + S3 with deploy/destroy scripts |
| m5-vehicle-logger | C++ | Vehicle data logger for M5Stack — GNSS + 9-axis IMU + barometer, 3-page display, gravity compensation |
| magi-system | Python | Multi-agent discussion system with 3 AI personas (MELCHIOR / BALTHASAR / CASPER) |
| magi-system2 | Python | Multi-persona AI discussion — dynamic persona generation, dual memory, adaptive facilitation via Gemini |
| mail-watcher | Bash | Mail monitoring workflow — watches for incoming eml/msg files, analyzes with LLM, and posts Slack notifications |
| mcp-skeleton | Python | MCP server skeleton — raw JSON-RPC 2.0 over stdio/SSE with API key auth, for learning MCP internals |
| meeting-note | Python | Meeting minutes structuring tool — audio/transcript to structured JSON via Gemini, then compile to Markdown/HTML |
| sai | Python | Context-aware Slack bot with RAG memory and natural language command execution |
| slack-monitor | Python | Real-time Slack channel summarizer with local/cloud LLM and Textual TUI |
| virtual-reviewer | Python | AI-powered security review system — LLM expert models with full regulation context, no RAG, UNIX pipes |
| workflow-builder | — | LLM-powered workflow builder — generates shell scripts from natural language using CLI tool registry (design phase) |
Shared libraries for nlink-jp projects. Zero external dependencies where possible.
| Library | Lang | Description |
|---|---|---|
| nlk | Go | Lightweight LLM utility toolkit — guard, jsonfix, strip, backoff, validate. Zero external dependencies |
| nlk-py | Python | Python edition of nlk — same 5 modules, same API design. Zero external dependencies |
Small, local-first CLI tools for LLM interaction, retrieval, and classification.
| Tool | Description |
|---|---|
| lite-llm | |
| lite-rag | RAG CLI for Markdown docs using DuckDB — index and query local knowledge bases |
| lite-switch | Natural language classifier for shell pipelines — routes stdin text to a matching tag via LLM |
Claude Code Skills for development process automation.
| Skill | Command | Description |
|---|---|---|
| rfp | /rfp [tool-name] |
Interactive RFP facilitation — collects requirements through Q&A against CONVENTIONS.md Phase 1 and generates structured RFP documents |
Pipe-friendly tools for data transformation and processing.
| Tool | Lang | Description |
|---|---|---|
| cclaude | Bash | Containerized Claude Code — run Claude Code in an isolated container with project isolation |
| csv-to-json | Go | Convert CSV data to a JSON array |
| data-analyzer | Go | Large-scale JSON/JSONL data analysis using local LLMs — sliding window + progressive summarization |
| eml-to-jsonl | Go | Parse .eml files and output structured JSONL — headers, body, attachments |
| gem-image | Go | Image generation and editing CLI — text-to-image and image editing via Vertex AI Gemini 2.5 Flash |
| gem-query | Go | Natural language data analysis CLI — interactive SQL generation for DuckDB/SQLite via Vertex AI Gemini |
| gem-rag | Python | Gemini-powered RAG CLI for Markdown documents — index, search, and answer questions using Vertex AI embeddings and DuckDB |
| gem-search | Go | Agentic web search — autonomous research via Vertex AI Gemini with Google Search Grounding, Markdown/JSON reports |
| 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 |
| 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 |
| lookup | Go | Enrich JSON/JSONL streams by matching fields against CSV/JSON data sources |
| mail-analyzer | Go | Suspicious email analyzer — rule-based indicators + Gemini LLM content analysis for .eml/.msg files |
| mail-analyzer-gui | Rust/Svelte | macOS desktop GUI for mail-analyzer — drag & drop email analysis via Tauri |
| mail-analyzer-local | Go | Local LLM version of mail-analyzer — email analysis 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-guardian | Go | MCP governance proxy — transparent auditing, OAuth2 auto-discovery, and tool masking for MCP servers |
| msg-to-jsonl | Go | Parse Outlook .msg files and output structured JSONL — same schema as eml-to-jsonl |
| pptx-to-markdown | Python | Convert .pptx presentations to structured Markdown for LLM analysis |
| quick-translate | Swift | macOS menu-bar-resident translation tool — local LLM via 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) |
| shell-agent | Go/Swift | macOS LLM chat & agent — MCP support, shell script Tool Calling with MITL, Hot/Warm/Cold memory, multimodal |
| webhook-relay | Go | Authenticated webhook receiver — writes payloads to GCS via Cloud Run Service with VPC isolation |