by Martin Monperrus Tags:

TLDR: I ran a C compiler and my smart watch (Huawei Watch 2). After all, a smartwatch is a capable Linux computer that has been forced to behave like a dumb accessory.

My watch runs AsteroidOS, an open-source Linux distribution for smartwatches. This changes the question from “Which apps are available in the store?” to “Which programs can I run on this ARM machine on my wrist?”

Much better question.

1. Compile C on the watch

The AsteroidOS image ships with glibc, system headers, and plenty of shared libraries, but no compiler. The missing piece was therefore small: TinyCC.

I cross-built TinyCC once, installed it on the watch, and can now compile and execute C directly on my wrist:

ceres@sawfish:~$ tcc -run hello.c
tcc on sawfish

TinyCC on the watch links against the libraries already present in the image: SQLite, zlib, libxml2, libpng, OpenSSL, Cairo, Wayland, and others. It can even open the Android vibrator hardware abstraction layer through libhybris.

It can compile graphical apps via QML.

2. Run a coding agent on the watch

Running a large language model on a smartwatch is unreasonable. Running the coding-agent loop on a smartwatch is entirely reasonable: the agent is a Python program, while the model lives behind an API.

So I installed Python and agentknit on the watch. The watch-resident agent talks to a model over the watch’s own Wi-Fi. The Python process, network calls, and interactive loop all execute on the watch. Neither my phone nor my laptop is part of the conversation.

The agent receives the AsteroidOS QML reference and the exact TinyCC configuration in its system prompt. It knows the screen dimensions, the available services, and where the compiler lives.

I can build a watch app with an agent that is running on the watch itself.