
WebTILP is a new, free and open-source, browser‑based tool to connect to TI graphing calculators without installing a desktop app. It brings the familiar features of the TILP transfer software, to the web, fully client-side.
Today, I'm proud to announce that WebTILP is now available as version 1 beta! You can find it on https://web.tilp.info . This URL currently redirects to a page on TI-Planet, but as the project matures, automatic build/deployment/etc. will be handled by a CI script on GitHub.
Context & creation
For many many years, TILP has been the open-source software of choice for portable TI calculator linking, especially on Linux, but also on macOS, Windows and some of the BSDs in some cases. However, building it (compiling etc.) wasn't always easy or possible for most people, distribution packages weren't always up to date, and the correct installation proved problematic especially on Windows due to dependencies and most importantly driver conflict issues out of our control, stemming from Windows limitations...
We've known for years that a cross-platform, install-free, ready-to-use version of TILP would be possible (and preferred!) if we managed to build it for the web. Recent improvements on the browser and toolchain sides finally made this happen in much simpler ways than it would have been initially. In fact, we knew WebUSB in particular would be working fine, as NumWorks had adopted WebUSB linking at large scale and proved to be a viable option ; later on, TI went the same route for its free online Nspire CX II linking webapp NspireConnect and the ChromeOS TI Connect CE version. There are also free and open-source third-party TI linking webapps like N-Link for the Nspire series (based on libnspire), and ticalc.link (handmade in JS), but nowadays both unmaintained/abandoned several years ago.
WebTILP is built on top of the well‑established tilibs stack (libticalcs, libticables, libtifiles, libticonv), compiled for the browser (to WebAssembly with Emscripten ; some of its dependencies, like GLib, needed a bit of some hacks/workaround to build to WASM, but everything worked out well enough). The browser handles the USB permissions and device access using WebUSB, while WebTILP provides the UI and bridges the calls to the underlying libraries. This means most of the proven protocol logic is the same as the desktop tools, but delivered in an install‑free format. It even works on Chromebooks and Android phones!
What it can do
WebTILP supports the core operations you'd expect, plus a bit more (features depend on the model):
- Directory/file listing (in table or tree view where having the folder hierarchy makes sense)
- Send&Receive variables and apps
- Send OS
- Screenshots
- Backups (receive/restore)
- ROM dump
- OS receive on TI‑Nspire models ("Fron"-like feature)
- Software/Hardware information
- PC=>TI clock sync
- ... more soon?!
(some ideas: better folder support, key-sending / remote control, PTT setup & exit...)
TI-89 Titanium Screenshot and Device info, TI-83 Premium CE Screenshot, Transfer dialog
Supported devices / cables
All calculators that have a USB port directly, or a 2.5mm I/O port (for the SilverLink cable) are supported. So yes, for instance the TI-84+CE/83PCE, the TI-Nspire series, the TI-89 Titanium, the TI-83 Plus... even the TI-80 for screenshotting!
To be clear: Not all cable types are supported, just USB ones so far: DirectLink and SilverLink ("Graph Link USB"). The old ones (BlackLink, GrayLink, etc.) won't work.
Some photos by mr womp womp and myself:
A TI-84 Plus CE (with Chrome on Android), A TI-Nspire (sending its OS), A TI-80 (being screenshotted!)
Limitations & caveats
WebTILP is powerful, but it inherits some constraints from the browser environment:
- Requires a WebUSB‑capable browser (Chrome, Edge, Brave...) - most notably not Firefox or Safari.
- USB device permissions must be granted by the user (that's the browser's security rule).
- Some operations may be slightly slower than the desktop TILP (but you probably won't notice it)
- Protocol edge cases still exist (especially on the TI-92 or TI-Nspire), and recovery can require re‑authorizing or re-plugging the cable (the desktop TILP can reset and re-connect the cable in a software way, but it's not 100% possible on the web…).
In fact, when things go wrong, you'll likely have to disconnect the cable and refresh the page, for now.
- Only a USB connection is supported, as mentioned above
- Last but not least: the driver conflict issue on Windows, caused by long-time limitations of that platform, is still present. This means that if your calculator isn't already recognized and working directly in WebTILP, you'll likely have to follow most of some extra steps with Zadig, a software to tell Windows to use a specific driver (you'll want "WinUSB", in our case) instead of another (libusb (for TILP) or TI's (for TI's software)).
This doesn't apply to the TI-Nspire CX II series, whose driver from TI uses WinUSB natively, so there's no conflict in the first place.
Note: if something goes wrong, you can try the [💣] button at the top right, to disconnect/reset and try again, but if it's not getting any better, disconnect the cable, refresh the pge, and reconnect it then try again.
How was WebTILP created?
This is the fun part 🔥
As it turns out, this was originally just a test to see how the Codex CLI agentic LLM (I used gpt5.2-codex medium and high, more specifically) was doing, as I had heard it was pretty good.
- Sure enough, the initial version of WebTILP, for both [part of] the "backend" (the C (now C++) code that bridges tilibs to the JS/WASM side) and the front-end, were generated in around 15 minutes, astonishingly. (I had already prepared the Emscripten environment and build scripts, but this was obviously not the hard part at all. Parts of the "backend" were also from previous test prompts back in December, for manual WebUSB testing when WebTILP wasn't an idea yet, but a big part of it got improved/rewritten anyway).
- After this first version, and over a few days, more prompts followed, to add features, fix some behaviors, etc.
- All of this was thus generated entirely with simple prompts. I'm no prompting expert, as I was saying this was in fact my first project with Codex, and I had only just a few (much smaller) experiences with Claude and Junie before).
- Only some minor CSS tweaks were done manually, literally everything else that you see was LLM-generated!
- Interestingly, the LLM found a bug in libusb, which I couldn't figure out manually as it wasn't obvious at all in the browser console what was failing (buried deep in the WASM)...
- The Fron (a program by BrandonW) -like feature to make WebTILP act as a TI-Nspire OS "receiver" (making a connected TI-Nspire send its OS) was also made possible quicker, solving a 10+-year-old TODO, because Codex analyzed the code and explained what needed to be done on the tilibs side in order to make an equivalent on that stack. And it worked! A few previously-undumped OS versions are now available thanks to this (credits to mr womp womp)! Lionel Debroux and I are still working on a patch but the feature will eventually be available in TILP as well 🙂
Needless to say, WebTILP would probably have never existed if it wasn't for this. After all, we have traces of discussions about making WebTILP since at least 2018… with nothing concrete coming out of those, for lack of time mostly, but also front-end expertise (neither Lionel's nor my forte), and motivation to embark on such a big project. The LLM really did solve all this, all at once, in a matter of minutes/hours. It's hard not to be impressed 🤷♂️.
Try it and share your feedback
WebTILP is actively under development and still evolving, so more real‑world testing is invaluable. If you run into quirks, please report them (do copy/paste the browser console logs/errors) here, and later on the dedicated GitHub repo!
Some fixes/improvements also translate back into tilibs itself (and thus eventually in the desktop TILP app), after reviewing and rewriting some parts, so it's a win for everyone.
Special thanks:
- Lionel Debroux (maintainer of the tilibs and TILP) for dev/test help etc.
- mr womp womp for lots of testing especially on special calcs...
- Other alpha-testers (d-lta, kg583, MateoConLechuga, qrkadem, sasdallas, Satyamedh, Sumde, Vogtinator, Zeroko...) - sorry if I missed some of you, oops
Cross-posted from TI-Planet: https://tiplanet.org/forum/viewtopic.php?f=49&t=27263


