vOpen-source Chrome extensionv1.0.0

Catch your Schengen slot the moment it opens.

A privacy-first Chrome extension that watches TLScontact for you — and pings your phone the instant a slot drops. Open source. Free.

~30 sec install4 Chrome clicksworks offline
View source on GitHub →
MIT licensed Runs in your browser No server
Problem · 01
60sec
Average time a TLS slot stays visible during peak season — easy to miss while you sleep, work, or blink.
Problem · 02
15%
Of TLS traffic auto-blocked as bot per their own disclosures. The extension stays well under the threshold.
Problem · 03
3/day
Manual refreshes before TLS temporarily blocks you. Polite polling, never a hammer.
How it works

Three steps. About thirty seconds. Then walk away.

1
Install the extension

Sideload from GitHub today; one click on the Chrome Web Store soon. Either way, the same MIT source.

chrome://extensions
2
Open your TLS page
and log in

The extension auto-detects the tab. Toolbar badge turns green — that's me, watching.

v
watching · 4 min cadence
3
Walk away

When a slot opens, you get a desktop ping — and, optionally, a Telegram message on your phone.

Slot found
Manchester · FR · adult.
Go book it now.
detected 4 seconds ago
A small, polite background process

What I do, and what I won't.

Two lists, same length. I'm only useful if you can trust me — so the second list is as long as the first, and at least as honest.

What I do
  • 01Refresh your TLScontact appointment page on a polite cadence — every 2–15 min; default is four.
  • 02Notify you the moment a slot opens — desktop ping, optional sound, optional Telegram message.
  • 03Run entirely in your own browser. Your TLS session never leaves this computer.
  • 04Show my work. Every detection comes with the evidence I used so you can sanity-check me.
What I don't do
  • Read your passport number, name, or any form field.
  • Book the slot for you — you always book yourself.
  • Solve Cloudflare captchas — I'll ask you, politely.
  • Share your data with anyone, ever. There is no server. There is no telemetry by default.
Every state, plainly

See every state the extension shows you.

One popup, seven moods. Same chrome, same restraint. Tone shifts with status — never decoration.

Phone notifications

Get pinged on your phone — set it up in two minutes.

Telegram is the only off-machine path I touch, and it's opt-in. Off by default. You hold the keys.

Data flow
v
Chrome extension
runs in your browser
slot detected
t
Telegram Bot API
api.telegram.org
~250 byte message
📱
Your phone
push notification
What each message contains
Centre name · “Manchester”
Country code · “FR”, “IT”, “DE”
Subject code · “ADULT”, “MINOR”
Timestamp · UTC, second precision
No login or cookies
No URLs from TLS
No passport number, no name
No form fields, no screenshots
OFF BY DEFAULT · opt in from settings · disable anytime
Setup wizard — five short screens
~2 minutes
Step 01
Open BotFather
Step 02
Create the bot
Step 03
Paste the token
Step 04
Pick chat ID
Step 05
Send test ping
Open source · audit moment

The only file that touches the page.

If you'd rather trust the code than my marketing — please. The classifier is one short, readable file.

extension/src/content/detector.ts
 1 // TUNABLE: classification rule — read top-to-bottom
 2 export function classify(
 3   doc: Document,
 4 ): PopupState {
 5   if (matchesCloudflare(doc))
 6     return 'cloudflare_check'
 7   if (matchesLoggedOut(doc))
 8     return 'logged_out'
 9   if (matchesSlotFound(doc))
10     return 'slot_found' // 🚨
11   if (matchesMonitoring(doc))
12     return 'monitoring_no_slots'
13   return 'unknown' // honest about edges
14 }
Read the full file on GitHub →MIT · readable in 2 minutes
What the extension cannot do
  • Read your password
  • Auto-book a slot
  • Send raw page HTML off your machine
  • Set up any remote service or account on your behalf
Everything detection-related happens in the content script — inside your own browser. The Telegram path is the single opt-in exception, and it carries the four short fields shown above.
Read the source on GitHub
Install · 4 clicks · ~30 seconds

Install in four Chrome clicks. About thirty seconds.

v1.0.0 installs via Load Unpacked while the Chrome Web Store listing is in review. The pre-built ZIP is built by CI from the same MIT source you can audit above — a one-click “Add to Chrome” button slots in here the moment the listing publishes.
Downloadvisa-master-v1.0.0.zip

Built by CI from the open-source code you can audit above. SHA-256 fingerprint shown on the GitHub release page.

macOSDouble-click the ZIP.
WindowsRight-click → Extract All.
Linuxunzip visa-master-v1.0.0.zip

One folder appears. That's the extension.

Paste chrome://extensions into the address bar, then flip the Developer mode toggle in the top-right corner.

Chrome will show a one-time warning. That's normal for any extension installed outside the Web Store — you're loading the open-source code you can read on GitHub.

Hit the Load unpacked button and pick the folder you unzipped in step 2. The toolbar badge appears and the first-run welcome tab opens automatically:

First run
Hello. I'll watch your TLScontact page so you don't have to.
I understand — start watching →

Pick your language, tap I understand — start monitoring, you're live.

Frequently asked

Eight questions, honestly answered.

The extension polls at a polite cadence — default once every 4 minutes during release windows, well under TLS's own “no more than 3 per day” guidance for manual refreshes. It doesn't bypass Cloudflare, doesn't solve captchas, and runs as a normal logged-in user. Risk is low, but not zero — TLS's terms of service may classify any automation as prohibited. You use this at your own risk.
Also from torly.ai
The UK Innovator Founder Visa assistant.

Different product, different applicants, same privacy posture. An agentic AI assistant that helps overseas founders prepare a UK Innovator Founder visa application end-to-end.

Learn more →

Catch your next slot.

Download the extension — Free
~30 seconds · 4 Chrome clicks · ZIP from GitHub Releases
MIT licensedFree foreverOpen source
/