VineLab
Personal lab - based in India

A small lab. Many things shipped.

VineLab is where I publish my open-source side projects: CLI tools, web apps, browser extensions, AI agents, platform plugins, and the occasional design system. Open by default. Self-host friendly. No telemetry games.

Disciplines
6+
Open by default
100%
Started
2025
~/vaultctl

$ vaultctl ls

NAME TYPE SHARED

aws-prod login team

stripe-keys api team

cloudflare token personal

$ vaultctl get stripe-keys --json

{
  "name": "stripe-keys",
  "value": "sk_live_******",
  "updated": "2026-05-08"
}

$ _

zero-knowledge - decrypt happens locally connected
Lab work

Tools you can read, run, and own.

Every release ships with full source, signed binaries, and a self-host path. No managed-only feature gates, no telemetry sneaks.

All on GitHub

vaultctl

Self-hosted, zero-knowledge password vault

Beta

Single Go binary serves the API and embedded React SPA. Browser extension and CLI talk to the same server. Argon2id + AES-256-GCM happen in the browser, the extension, or the CLI - the server has no decrypt path.

  • Zero-knowledge by construction - server cannot decrypt
  • One ~45MB distroless image, embedded SPA, embedded migrations
  • Multi-user, RBAC, RSA-OAEP wrap with Ed25519 signature pinning
  • Signed releases, CycloneDX SBOM, SLSA L3 provenance

        go install github.com/vinelabs-de/vaultctl/cmd/server@latest
      

xrechnung-kit

EN 16931 / XRechnung 3.0 compliant e-invoicing for PHP

Stable

Turns a typed PHP value object into a KoSIT-strict valid XRechnung 3.0 / EN 16931 XML document. Validates in memory before writing, quarantines invalid output, stays out of your way. Framework-agnostic core with adapters for Laravel, Symfony, CakePHP, Laminas, Shopware, TYPO3 and WordPress.

  • Standard, partial, deposit, credit and cancellation document types
  • KoSIT Schematron validation as an opt-in dev dependency
  • First-class adapters for the major PHP frameworks
  • Platform integrations for Shopware, TYPO3, WordPress, Contenido

        composer require vinelabs-de/xrechnung-kit-core
      

agent-sessions

Browse, search, and resume sessions across every CLI coding agent

Stable

Interactive TUI that lists past sessions from Claude Code, Gemini CLI, OpenAI Codex, Cursor Agent, and Windsurf in one view. Sort by recency, filter with fuzzy search, peek into a conversation before resuming, delete the noise. Fills the gap left by `--resume <session-id>` flags that have no way to discover what to resume.

  • One TUI for Claude Code, Gemini CLI, Codex, Cursor, and Windsurf
  • Session preview with `p` so you can read before you resume
  • Fuzzy search across date, project, branch, message count, first message
  • Optional fzf integration for power users
  • macOS, Linux, Windows

        npm install -g @vineethnkrishnan/agent-sessions
      

backupctl

Multi-project backup orchestration with restic, restored without surprises

Stable

Standalone Docker service that runs scheduled backups for many projects from one YAML file. Handles PostgreSQL, MySQL, and MongoDB dumps plus arbitrary file trees, encrypts and deduplicates via restic, and routes notifications to Slack, email, or webhooks. Every run is tracked in PostgreSQL with stage-by-stage progress and orphan-aware crash recovery.

  • One YAML manages dozens of projects, each with its own schedule and scope
  • Restic + Hetzner Storage Box for encrypted, deduplicated remote backups
  • Optional GPG dump encryption before upload for extra paranoia
  • Audit trail in PostgreSQL, with Slack / Email / Webhook notifications and Uptime Kuma heartbeats
  • Crash recovery, orphan detection, retry with exponential backoff, 15-command CLI

        docker pull vineethnkrishnan/backupctl:latest
      

dfree

Interactive disk cleanup CLI for macOS and Linux

Stable

Cross-platform shell tool that breaks down disk usage by category (System, Docker, Logs, Cache, dev caches) and walks you through reclaiming space one confirmation at a time. No automatic deletion, no destructive defaults. Customise targets with a `~/.dfreerc` Bash hook.

  • Interactive by design - nothing is deleted without your confirmation
  • Docker-aware pruning with a clear before/after diff
  • Knows about npm, yarn, pip, cargo, and other dev caches
  • Simulation mode (--simulate) for dry runs and CI smoke tests
  • Hexagonal architecture so the cleanup core stays testable

diskdoc

Rust TUI that finds what is eating your disk and guides you through cleanup

Stable

Parallel directory walker with a responsive terminal UI. Explicitly recognises Docker artifacts, package caches (npm, cargo, etc.), log files, and build outputs like `target/` and `node_modules/`. Never auto-deletes - selection plus confirmation is always required.

  • Parallel filesystem walking scans gigabytes in seconds
  • Detects Docker, package caches, logs, and build artifacts on sight
  • Vim-style navigation plus arrow keys and space-to-select
  • Hexagonal architecture isolates filesystem, Docker, and TUI adapters
  • Cross-platform (macOS, Linux)

        cargo install --git https://github.com/vineethkrishnan/diskdoc
      

dockit

Audit-first Docker disk analysis and cleanup

Stable

Replaces blind `docker system prune -a` with a transparent, risk-aware workflow. Classifies every image, container, volume, and build cache entry into SAFE, REVIEW, or PROTECTED so you can reclaim space without nuking critical infrastructure. Full JSON output for CI pipelines and dashboards.

  • SAFE / REVIEW / PROTECTED scoring on every resource before deletion
  • Detects runaway container logs silently filling the disk
  • Dry-run by default - apply changes only with the --apply switch
  • JSON output (--json) for CI pipelines and monitoring tools
  • Never deletes running containers or attached volumes

ipwhoami

IP geolocation lookup from your terminal

Stable

Queries ipinfo.io, ipapi.co, and ip-api.com from a single command and prints the results side by side. Built on Node 18+ `fetch` with zero npm dependencies. Cross-platform via npm, Homebrew tap, and Scoop bucket.

  • Compare three providers in one command to spot disagreement
  • Zero runtime dependencies - just Node 18+ built-in fetch
  • Distributed via npm, Homebrew tap, and Scoop bucket
  • Quiet, parse-friendly output suitable for piping into other tools

        npm install -g ipwhoami
      

medix

Lightweight media file converter with an interactive wizard

Stable

Python CLI that wraps the common audio and video conversion paths behind a guided prompt. Pick a source, pick a target, watch the progress bar - no remembering ffmpeg flags. Single-binary distribution, no GUI required.

  • Interactive configuration - no ffmpeg incantations to memorise
  • Live progress bar so you know what is happening to long files
  • Sensible defaults for the common audio and video target formats

tor-shield

Kernel-level Tor exit node firewall for Linux production servers

Stable

Blocks inbound traffic from known Tor exit nodes at the packet-filter level using `ipset` + `iptables` / `ip6tables`. Pulls from the official Tor Project bulk list, the Onionoo API, and dan.me.uk for broader coverage. Covers IPv4, IPv6, host processes, and Docker containers, with automatic rollback when anything fails mid-run.

  • IPv4 + IPv6 + Docker, all matched at the kernel firewall layer
  • Pulls from three independent Tor IP sources and merges append-only
  • Refuses to apply if fewer than 100 IPv4 / 20 IPv6 addresses validate
  • Atomic apply with automatic rollback from timestamped backup on failure
  • flock-guarded so two cron jobs cannot race each other

docling-server

Production-ready Docling deployment for self-hosted document processing

Stable

Docker Compose stack around IBM Research's Docling - FastAPI for the synchronous endpoints, Celery + Redis for batch and long-running conversions, Nginx with Let's Encrypt at the edge. Convert PDF, DOCX, PPTX, XLSX, HTML, and images to Markdown, JSON, or plain text with table extraction, OCR, and vector embeddings for RAG. One `make init` to deploy.

  • One-command production deploy with `make init`, SSL via Let's Encrypt
  • Async batch pipeline through Celery for large or parallel conversion jobs
  • Table extraction and OCR baked in, embeddings ready for RAG pipelines
  • Flower dashboard plus Prometheus metrics for live operational visibility
  • Token-authenticated API, sensible secrets handling out of the box

clearpr

Self-hosted GitHub App that strips formatting noise from PRs and reviews what is left

Beta

Parses code with the TypeScript compiler API and structural parsers for PHP, JSON, and YAML, then compares canonical AST forms so Prettier reruns, quote-style flips, import reorders, and whitespace changes disappear from the diff. Reviews the clean diff against your repo's own guidelines and surfaces prior PR feedback when the same mistake reappears.

  • Semantic AST diff strips Prettier, quote flips, import reorders, trailing commas
  • Reviews against `claude.md` / `agent.md` / `.reviewconfig` in your repo, not generic rules
  • Indexes the last 200 merged PRs and learns which feedback was accepted vs dismissed
  • Self-hosted - your code never leaves infrastructure you control
  • Falls back to whitespace-only normalisation for languages without an AST adapter

mcp-pool

Curated Model Context Protocol servers for the SaaS tools teams actually use

Stable

Eleven MCP servers in one monorepo, each shipped as its own npm package - Stripe, Sentry, Notion, Linear, Datadog, Vercel, PagerDuty, HubSpot, Intercom, Shopify, and Google Workspace. Drop any of them into Claude Desktop or another MCP-compatible client and ask questions in natural language backed by live data, no dashboard switching.

  • 11 servers covering payments, monitoring, knowledge bases, support, and ops
  • Self-hosted support for Sentry, EU region for PagerDuty, multi-site Datadog
  • Each server is an isolated npm package - install only what you need
  • Works with Claude Desktop, Claude Code, and any MCP-compatible client
  • Per-package CI, security, and quality gates so a bug in one does not ship to all

        npx -y @vineethnkrishnan/stripe-mcp
      

jquery.verticalScroll.js

Full-page vertical scrolling plugin for jQuery, polished for 2026

Stable

Smooth section-by-section vertical scrolling for single-page sites, landing pages, and presentation layouts. Mouse wheel, keyboard, and touch gestures, ARIA-correct pagination dots, four bundled themes, 25+ configuration options, and a SCSS 7-1 architecture so the look is easy to extend.

  • Mouse wheel, keyboard (arrows, PgUp/PgDn, Home/End), and touch swipe in one plugin
  • 13 pagination themes (Neon, Git Graph, Chain, Diamond, and friends) and 16 transitions
  • Full ARIA support so screen readers actually understand the navigation
  • No dependencies beyond jQuery >= 1.9.1
  • Responsive with a mobile breakpoint hook for graceful downgrade

        npm install @vineethnkrishnan/jquery.verticalscroll
      
  • AGPL / MIT Open licenses
  • EN 16931 XRechnung 3.0 strict
  • SLSA L3 Provenance attested
  • Self-host Run it on your own metal
How I build

The lab runs on four ground rules.

These are not slogans. They show up in every README, every release, and every line of code.

01

Self-host first

Single binary, single image, single compose file. Deploy where it makes sense for you.

02

Source you can audit

Permissive or copyleft, never source-available. The threat model lives in the repo, not the marketing page.

03

Supply chain hardened

Signed releases, SBOMs, SLSA L3 provenance where it applies. You should be able to verify what you run.

04

No telemetry tax

Nothing phones home. If a project ever needs usage data, it is opt-in and the README spells out what is collected.

Spotted a bug? Have a question? Want to say hi?

The fastest way to talk about the projects is on GitHub - issues for bugs, discussions for questions. For everything else, email works too.

General + feedback
info@vinelab.in
Read by a real person, not a queue
Project help
support@vinelab.in
See help guidelines
Open source
github.com/vinelabs-de
Issues, PRs, discussions, releases