tawc brings hardware-accelerated Linux apps to Android, built largely with Claude Code

tawc brings hardware-accelerated Linux apps to Android, built largely with Claude Code

tawc, short for Tess's Android Wayland Compositor, is an open-source project that runs both command-line and graphical Linux programs on Android phones without root access. According to its README, graphical apps get hardware acceleration through the phone's own native graphics stack. The project has three parts: tawcroot, which the README calls a performant alternative to PRoot; a Wayland compositor; and a UI that ties the pieces together into one app.

To run Linux software, tawc downloads and extracts a stock Linux distribution, such as Arch Linux ARM or Debian, and then runs programs inside that distribution's root filesystem using tawcroot, including the distribution's own native package manager. tawcroot emulates chroot and other system calls to work around the restrictions of a rootless Android device; the README describes it as similar to PRoot, but faster because it runs as a single process. A Smithay-based Wayland compositor handles Android-side integration, such as passing input from the phone's own Android keyboard into Linux apps. Hardware-accelerated graphics come through libhybris, which lets glibc-based Linux programs load Android's standard graphics drivers; the README says the upstream version of libhybris does not work on stock Android, so the project maintains its own fork that does.

On top of that base, tawc embeds a widget from Termux to provide a familiar terminal interface, so the separate Termux app is not required. Installed graphical Linux apps appear in tawc's own launcher menu, and can also be added to the phone's home screen, where they show up alongside native Android apps in the app switcher. XWayland is bundled and configured for hardware-accelerated X11 support, and a built-in task manager lets a user view and kill running Linux processes. A feature the README calls andocommand, together with storage binds, lets Linux programs interact with Android's own data if the user chooses to allow it.

The README lists its own limitations directly. There is no real sandboxing of Linux apps beyond what Android itself provides, and because tawcroot runs as a single process, that isolation can be escaped. There is no desktop-class OpenGL support, only whatever graphics APIs the phone itself exposes, generally GLES and Vulkan, and the project has not yet been tested or optimized for games. Performance is described as better than alternative approaches, but still short of native. Only arm64 builds are officially provided for now; an x86 build is possible in principle, but the project's libhybris approach depends on the arm architecture. tawc requires Android 10 or newer.

The README states plainly that the project itself is agent-built, primarily using Claude Code and the latest Anthropic models, without naming a specific model or version. That stance carries into its contribution rules: any issue containing LLM-written content must be clearly marked, ideally naming which LLM produced it, and must always include a human-written description as well; reporters are also asked to give their tawc version, phone, Android version and, where relevant, Linux distro. Issues are preferred over pull requests, and while bug reports and feature requests are welcome, the README makes no promise about when, or whether, any particular one gets handled. As its own template for a well-formed report, the README walks through a fictional example, not a real conversation, where a user names their setup, describes a crash, says they asked something called fable about it, and gets a reply the README blanks out with the placeholder [CLAUDESLOP].

On licensing, the README says all code outside the project's deps/ folder is MIT-licensed, but a vendored dependency, termux-shared's extra-keys widget, carries a GPLv3 license, which makes the project as a whole GPLv3. Attribution for each bundled component is listed in-app under Settings → About → Licenses.

Key facts

  • tawc runs both command-line and graphical Linux programs on Android phones without root access, and the README says graphical apps specifically get hardware acceleration through the phone's native graphics stack.
  • The project has three parts: tawcroot, called a performant alternative to PRoot and faster because it runs as a single process; a Smithay-based Wayland compositor; and a UI that ties them together, working with a downloaded distro such as Arch Linux ARM or Debian.
  • The README states the project itself is agent-built, primarily using Claude Code and the latest Anthropic models, without naming a specific model or version.
  • Stated limitations include no real sandboxing beyond Android's own protections, since tawcroot's single-process design lets that isolation be escaped; no desktop OpenGL support, only the phone's own GLES and Vulkan; no game testing yet; and official builds limited to arm64 with Android 10 required.
  • On licensing, the README says code outside the deps/ folder is MIT, but a vendored dependency (termux-shared's extra-keys widget) is GPLv3, making the project as a whole GPLv3.

Why it matters

tawc runs both command-line and graphical Linux programs on an Android phone without root access, and the README says graphical apps specifically get hardware acceleration through the phone's own native graphics stack. That rests on a stack of genuinely low-level components: tawcroot, a chroot-and-syscall emulation layer the README calls a performant alternative to PRoot; a Smithay-based Wayland compositor; and the project's own fork of libhybris, the piece that lets glibc-based Linux programs load Android's standard graphics drivers, which the README says the upstream version cannot do on stock Android. The README adds a second reason this stands out to readers following AI-assisted development specifically: it states plainly that the project is agent-built, primarily using Claude Code and the latest Anthropic models, though it does not name a specific model. A compositor, a syscall-emulation layer and a graphics-driver fork are systems-level work, well outside typical web or app development, so a working project like this, agent-built by the maintainer's own account and still carrying real, self-disclosed limitations, is a concrete data point for how far agentic coding tools currently reach into that territory.

Who it affects

The direct audience is Android users who want to run real Linux software, both terminal and graphical, without rooting their phone, using a downloaded distro such as Arch Linux ARM or Debian. The README addresses that audience directly through its own contribution process: it asks bug reporters to open issues rather than pull requests, to always include a human-written description, to clearly mark any LLM-written content in a report and ideally say which LLM wrote it, and to state their tawc version, phone, Android version and distro, where relevant. It also matters to anyone following what agentic coding tools can build in systems-level territory: the README's own statement that the project is agent-built, primarily with Claude Code and the latest Anthropic models, is itself the kind of claim that readers tracking AI-assisted development look for, even though the README does not name a specific model.

How to use it

tawc requires Android 10 or newer, and for now ships only official arm64 builds; an x86 build is possible in principle, but the project says its libhybris approach depends on the arm architecture. Setting up a Linux environment means letting tawc download and extract a stock distro, such as Arch Linux ARM or Debian, and then running programs, including that distro's own native package manager, inside its root filesystem through tawcroot. A widget from Termux itself is built in for a familiar terminal interface, so the separate Termux app is not required; installed graphical Linux apps show up in tawc's own launcher menu and can be added to the Android home screen, appearing alongside native apps in the app switcher; XWayland is bundled for hardware-accelerated X11 support; and a built-in task manager lets a user view and kill running Linux processes. A feature the README calls andocommand, together with storage binds, lets Linux programs interact with Android's own data if the user allows it. Anyone filing an issue is asked to mark any LLM-written content in it, ideally naming which LLM wrote it, always include a human-written description, and state their tawc version, phone, Android version and, where relevant, distro. On licensing, the README says all code outside the deps/ folder is MIT, but a vendored dependency, termux-shared's extra-keys widget, is GPLv3, which makes the project as a whole GPLv3; per-component attribution is listed in-app under Settings → About → Licenses.

How solid is it

This account rests entirely on the project's own README on GitHub. The README does not name a developer, maintainer, or company behind tawc, referring to itself only in the first person ('I', 'our'), and it does not name which specific 'latest Anthropic model' was used alongside Claude Code, or give a release date or version history for the project. The claim that the project is agent-built, primarily using Claude Code and the latest Anthropic models, is the maintainer's own description, and this retelling has no independent source to weigh it against beyond the README itself. What does lend the README some credibility is that it is candid about weaknesses rather than only advertising strengths: it states outright that tawcroot offers no real sandboxing beyond Android's own protections and can be escaped, that there is no desktop GL support, and that the project has not yet been tested for games. On Hacker News, where this README surfaced, the submission had reached 64 points and drawn 10 comments roughly 13 hours after posting, a modest but real amount of attention for a specialized systems project.

Risks and caveats

The README states its own limits directly. Linux apps running under tawc get no real sandboxing beyond whatever Android itself provides, and because tawcroot works as a single process, the README says that isolation can be escaped. Graphics support is limited to whatever APIs the phone itself exposes, generally GLES and Vulkan, with no desktop-class OpenGL support, and the project has not yet been tested or optimized for games. Performance is described as better than alternative approaches but still short of native. Official builds cover only arm64 devices for now; an x86 build is possible in principle, but the project's libhybris approach depends on the arm architecture. Android 10 is the minimum supported version, and the andocommand and storage-binds feature that lets Linux programs interact with Android's own data works only if the user chooses to allow it.

“This project is agent-built, primarily using Claude Code and latest Anthropic models.”

— tawc's README