← ALL WORK

KiroPad.

Released · v2.0.0

A mobile remote for Kiro. Send prompts from your phone and stream responses from your Mac, with QR pairing and expiring sessions.

01 / KIROPADWORKFLOW STUDY

Your next thought.
Back at your desk.

Phone → desktop coding sessionIllustration based on public source
01 / THE PURPOSE

A desktop workflow, within reach of a phone.

Kiro runs on the desktop. KiroPad adds a phone interface for sending prompts and reading responses from that session, with a desktop bridge connecting the two.

WHO IT’S FOR
Developers working with Kiro on a Mac.
THE CONSTRAINT
The phone needs a route to the desktop, and permission to use the session. An address alone is not enough.
02 / THE DECISIONS

An address is only half the connection.

KiroPad puts the connection address and a one-time pairing code into a QR code. Once paired, a separate session token carries access forward.

  1. One scan carries the setup

    The QR code bundles the tunnel address and current pairing code. It gives the phone a connection route without asking someone to copy an address and a credential separately.

  2. Pairing is a moment; access is a session

    A successful pairing issues a session token and replaces the pairing code. Reconnecting devices are checked against the stored session and its expiry.

03 / THE IMPLEMENTATION

The boundary lives in the check.

This small function is where an existing credential is accepted or rejected. The order is useful: find the session, check its lifetime, then record that it was seen.

desktop/src/pairing.tsTypeScript
validateSessionToken(token: string): boolean {
  const session = this._sessionTokens.get(token);
  if (!session) return false;
  if (Date.now() > session.expiresAt) {
    this._sessionTokens.delete(token);
    return false;
  }
  session.lastSeen = Date.now();
  return true;
}
From the implementationExplore this source
A known session
An unknown token exits before it can update session activity.
A checked lifetime
An expired session is removed and rejected when its token is validated.
04 / WHERE IT STANDS
Released · v2.0.0

Released for Mac and Android.

Version 2.0.0 provides macOS Apple Silicon downloads and an Android APK. The desktop implementation is available on GitHub, including pairing, the WebSocket bridge, and tunnel management.

KEEP IN MIND

The desktop app and Kiro CLI need to be running. The connection also depends on a working Cloudflare tunnel.

Take a closer look.

  1. Read the setup requirements for the desktop app and Kiro CLI.
  2. Choose the matching macOS and Android release artifacts.
  3. Follow the documented pairing flow on your own devices.
Explore the v2.0.0 releaseSetup requirements and downloads on GitHub
Sources, credits & review notes

Contribution & credits. Project author and maintainer. The public history also includes contributions from the Google Labs Jules bot.

The QR payload is defined in desktop/src/main.ts; desktop/src/tunnel.ts manages the Cloudflare quick tunnel. This architecture is not peer-to-peer, and end-to-end encryption has not been established.

Session expiry is checked when a token is validated. The interactive model on this page closes its connection immediately when expired; the reviewed source does not establish automatic closure of every existing WebSocket.

Published release artifacts and desktop source support this account. The release was not installed for this review, and no security audit was conducted. The current public tree does not include the companion mobile source; iOS distribution has not been verified.

PUBLIC SOURCE REVIEWED / 18 SEPTEMBER 2026

KIROPAD / LOCAL INTERACTIVE MODEL

An idea should travel.

Pair the devices. Send a thought.
See where the connection ends.

  1. 01Pair
  2. 02Connect
  3. 03Deliver
  4. 04Expire
ILLUSTRATION, NOT A LIVE CONNECTION

Start by pairing the two illustrated devices.

kiropad

01 / A THOUGHT, ON YOUR PHONE

Edit this sample
LOCAL MODEL
kiro / desktop bridge

02 / PICKED UP AT YOUR DESK

A little distance.No lost momentum.
DESKTOP INBOX

A connection starts with a pair.

ILLUSTRATIVE PAIRING CODE426 108
Waiting to pair00 LOCAL DELIVERIES

Everything here stays in this page. The prompt is mirrored between illustrations; no device connects and no command runs.

In the desktop source, session expiry is checked on reconnection. This model closes the connection when you expire it.

NEXT FROM THE WORKBENCH / 02CommitCanvas