LocalTC GitHub

Microsoft Flight Simulator 2024 · Windows

Air traffic control that never leaves your computer.

LocalTC gives you a full IFR flight on the radio — clearance delivery to taxi‑in — with your voice, real phraseology and readbacks that are actually checked. Speech recognition, the voices and the language model all run on your own machine.

No cloud. No account. No API keys. No monthly fee. Ever.

  • $0 forever
  • Offline after setup
  • Open source
COM1 118.300 COM2 121.700 XPDR 4512 Flying
ATCQuick Settings Live MapAirport Lookup
DestCYYC
Squawk4512
AltFL350
Rwy08R
    Right Ctrl held — talking

    What it does

    Everything below runs on your PC while you fly. Nothing here is a demo or a mock-up — it is what LocalTC does today.

    🎙️

    You talk, it listens

    Hold push‑to‑talk (a key or a yoke button) and speak. faster‑whisper transcribes locally and is primed with this flight's callsign, stations, runways and taxiways, so it hears "hold short runway one three", not "whole short".

    🔊

    Every controller has a voice

    ATC answers through Piper with a proper radio effect — band-pass, compression, carrier fade, a squelch burst at the end. Each station draws its own speaker from a pool of 40, and keeps it: Phoenix Tower never sounds like Phoenix Approach.

    📋

    A real IFR flight, in order

    Clearance delivery → ground → tower → departure → centre → approach → tower → ground. Taxi routes are computed from the sim's own taxiway graph. Phraseology comes from FAA templates, so routine calls are word-for-word correct every time.

    Readbacks that count

    Get it right and you get "readback correct". Get it wrong and you get "negative, squawk 4512". Miss something and you get "read back hold short runway 13". Nearly right — "12.1" for 120.1 — gets "confirm". Self-corrections count.

    🧠

    A small language model, kept on a leash

    A 1B–4B model via Ollama reads what you said and fills in a small form. It never talks to you and never decides anything: every value it reports must actually appear in your words, or the whole answer is thrown away and the grammar wins.

    💬

    Go off script

    "Request direct BLAKO." "Request vectors for the ILS." "Could we get runway 16R?" "We'd like the visual." "Moderate chop at seven thousand." "Going around." You get a real answer — or a real "unable", with the reason.

    📡

    Radar vectors and sequencing

    Headings and altitudes mid-flight, speed control on the arrival, a turn to intercept the final. Tower sequences you against the sim's real traffic — "number two, follow the 737 on a four mile final" — and sends you around if the runway is still occupied.

    🌦️

    ATIS and weather it builds itself

    MSFS won't hand out its ATIS, so LocalTC makes one: wind and gusts, visibility, temperature, altimeter, approach and runway in use, and cautions. Tune it and hear it on a loop. The letter advances when the weather really changes, and ATC tells you when it does.

    🚨

    ATC starts things too

    Traffic advisories on the sim's real AI traffic. "Check altitude, maintain five thousand" when you drift. "How do you read?" when you go quiet. A nudge when you sit on the old frequency after a handoff. And a full emergency tree when you declare one.

    🧑‍✈️

    An optional copilot

    Assist reads back every instruction and tunes COM1 for you. Full works the whole radio — clearance, taxi, ready for departure, check-ins, final — while you just fly. Turn it on or off mid-flight with a switch.

    🗺️

    The app

    Radios and transponder up top, the airport's frequencies to click, your clearance at a glance, and the radio log underneath. Plus a live map with your track and AI traffic, an airport lookup with runways and taxiways, and one-click SimBrief import.

    🔒

    Private by construction

    Your microphone audio is transcribed on your CPU or GPU. The model runs on your machine. There is no server to talk to, no account to make, no telemetry. Pull the network cable and the whole thing still flies.

    Why pay monthly for this?

    The good paid ATC add-ons are genuinely good. They also bill you every month, need a live internet connection, and send your voice to somebody else's server. LocalTC trades that for a one-time install.

     LocalTCA typical ATC subscription
    Price$0, foreverUsually $10–$20 a month
    Works without internetYes — that's the pointNo, it's a cloud service
    Where your voice goesYour CPU or GPUUploaded and processed remotely
    Account, login, DRMNoneRequired
    If the company foldsStill on your disk, still fliesIt stops working
    Change the phraseologyEdit a text fileFile a feature request
    Read the codeAll of it, on GitHubClosed
    Usage limitsNone — it's your hardwareOften tiered by hours

    What a subscription costs you while you fly

    $15
    3 years
    Subscription $540
    LocalTC $0

    If LocalTC saves you that, and you want to say thanks, a coffee is plenty.

    Honest caveat: a subscription buys you a team, a support desk and a roadmap. LocalTC is one person and an open repo. If a bug annoys you, you can file it — or fix it.

    Install

    Windows, with MSFS 2024. One installer does the lot: Python, LocalTC, Whisper, Piper, Ollama, CUDA if you have an NVIDIA card, and the models sized for your machine.

    1

    Get the files

    Download or clone the repository from GitHub.

    git clone https://github.com/duckiest428/LocalTC.git
    2

    Run the installer

    Double-click Install LocalTC.cmd, or from PowerShell:

    powershell -ExecutionPolicy Bypass -File install\install.ps1

    It picks the light, balanced or quality model set from your RAM and graphics card. After this, flights work offline.

    3

    Fly

    Open LocalTC from the desktop shortcut. Import your SimBrief plan or type one in, press Start, and call for your clearance. Mute the sim's own ATC first: Sound → Character voices → 0.

    No NVIDIA card?

    It runs on the CPU. Whisper's base.en transcribes a transmission in about 0.4 s on a laptop CPU, and ATC's voice takes about 0.3 s to synthesise. Pass -Cpu to the installer, or -NoOllama to run on the grammar alone.

    Where it is

    Working today

    • The full IFR flow, clearance delivery to taxi-in
    • Voice in and voice out, with push-to-talk
    • ATIS, weather and the runway in use
    • Radar vectors, speed control, approach clearances
    • Traffic sequencing and go-arounds against the sim's AI
    • Emergencies, and off-script requests
    • The copilot, in assist or full
    • The app: map, airport lookup, SimBrief, settings

    Not yet

    • SIDs, STARs and published arrivals — ATC clears "as filed" and vectors you instead
    • AI aircraft talking on the frequency alongside you
    • VFR and ICAO phraseology (it speaks FAA)
    • macOS and Linux at the controls — they're for development against recordings

    Nothing here is hidden behind a paywall or a "pro" tier. When it's built, it ships.

    Free, and staying free

    LocalTC is built in spare time and given away. There's no tip jar in the app, no nag screen and no locked feature. If it made a flight better, that's the whole reward — and if you'd like to buy the coffee that wrote the next feature, the door's open.