Harshal Gajjar

Harshal Gajjar is an AI Forward-Deployed Engineer at C3 AI, based in the San Francisco Bay Area. Harshal leads Agentic AI harness development for the Forward-Deployed Engineering organisation at C3 AI, and since January 2026 has been building a stealth-mode startup in the Agentic AI space. Harshal cofounded Shram.io in 2024, where he led the pivot from a Jira-competitor product to an AI assistant that reached #2 Product of the Day on Product Hunt.

Harshal holds an M.S. in Computer Science (Machine Learning specialisation) from Georgia Tech and a B.Tech in Computer Science from IIT Dharwad, where he was part of the institute's foundational class. He spent three summers at Wolfram Research in Boston — first as a summer researcher in 2018, then as an instructor for high-school students in 2019 and 2020 — and was a Wolfram Student Ambassador throughout his undergrad.

Outside of work, Harshal is a long-distance cyclist and a vertical and horizontal caver, active with the San Francisco Bay Chapter (SFBC) grotto. In 2019 he was part of the Hubballi Bicycle Club Guinness World Record for the longest single line of bicycles.

Contact Harshal at mail@harshalgajjar.com.

reminal — SSH without the gymnastics

A zero-config way to reach your own machine. One command, scan a QR code, you're in.

SSH was designed in 1995. It quietly assumes you own a static IP, a router you can reconfigure, and the patience to keep keys rotated. None of that describes a laptop on hotel Wi-Fi, a locked-down corporate network, or the phone in your pocket.

So I built reminal — short for remote terminal. The whole tutorial is one word:

reminal

It prints everything you need to connect and then waits:

  reminal — remote terminal

  Session:  K7M2NP4Q
  PIN:      482916
  Open:     https://reminal-relay.reminal.workers.dev/?s=K7M2NP4Q
  Connect:  reminal --connect K7M2NP4Q --pin 482916

  Scan to join from your phone:

  ██▀▀▀▀▀▀▀██▀▀██▀▀█▀▀▀▀▀▀▀██
  █ █████ █ █ █  ██ █████ █
  █ █   █ █▀ ▀▄█▀█ █   █ █
  █ █████ █ ▄██ ▀█ █████ █
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀

  Waiting for connection... (Ctrl+C to stop)

Scan the QR from your phone, open the URL and type the PIN in a browser, or run the --connect line from any other shell. You're on your machine. No env vars, no relay setup, no ports.

What's actually messy about SSH

Every "just SSH in" tutorial hides a tail of setup:

  • Port 22 open to the internet — a permanent thing to scan, brute-force, and zero-day.
  • Long-lived keys on disk — if the laptop is stolen, those keys still grant access.
  • NAT and firewalls — behind hotel or corporate Wi-Fi you need a VPN or a jump host before SSH even starts.
  • No phone story — there's no native client in your pocket.

reminal inverts all four. Your machine only ever makes outbound HTTPS connections, so there's nothing on the network to attack. Credentials are ephemeral — they exist only while the command is running, and Ctrl+C deletes them forever. Outbound HTTPS is the one thing hostile networks always allow. And the QR code is the phone client.

How it works

  Your laptop                Cloudflare relay             Any device
  ┌─────────────┐           ┌─────────────┐             ┌─────────────┐
  │  reminal    │◄──WSS────►│  Workers +  │◄────WSS────►│  browser or │
  │  (PTY/shell)│           │  Durable Obj│             │  reminal -c │
  └─────────────┘           └─────────────┘             └─────────────┘
              end-to-end encrypted — the relay sees ciphertext only

Both ends dial out to a Cloudflare Workers relay over WSS. The relay's only job is to shuttle bytes between two sockets — and those bytes are AES-256-GCM ciphertext. The key is derived from the PIN and session ID via HKDF on each end and is never sent over the wire, so the relay routes traffic it cannot read. You trust Cloudflare to deliver packets the same way you trust your ISP with SSH traffic. The difference is that reminal never opens your machine to the internet.

Security is dual-factor by construction: an attacker needs both the session ID (~1 trillion combinations) and the 6-digit PIN. Five wrong PINs trigger a lockout. Knowing one without the other is useless.

When I reach for it

  • Forgot something at home. Laptop asleep on the desk, phone on the train. Scan, run the command, lock it back up.
  • Hostile networks. Conference NAT, guest Wi-Fi, corporate firewall — all block inbound, all allow outbound HTTPS.
  • Pairing. Send a teammate a session ID and PIN over two different channels. They join a live shared terminal. Hang up when done — no keys to revoke.

The relay runs on Cloudflare's free tier and you can self-host it in about five commands, so there's no service to depend on but your own.

It's MIT-licensed and on GitHub. brew install and try it:

brew tap harshalgajjar/reminal
brew install reminal
#tools#security#fdereminal on GitHub