<!-- https://zerolog.ch/docs/app · Docs / Connect -->
# Android app

ZeroLog for Android 2.0: the chat you know, and an agent that works on your phone.

Version 2.0 is a native app. Chat, chat list, Compute, jobs and your container's files are drawn by the app itself and talk to zerolog.ch directly, not through a web page inside the app. You sign in once; the session key stays in Android's encrypted storage. The agent can run commands, work with files and control other apps after you allow Android's accessibility service. Each action asks first unless you turn approvals off.

## What the app does

### Four tabs

Chats, Aufträge (jobs, filtered by All, Phone and Server), Dateien (files) and Gerät (device). Compute, the phone agent, tools and settings sit under Gerät.

### Phone jobs

The agent shows a plan in the chat, you start it, and you can pause, stop or take over while it works. Details are in the section below.

### Agent on the phone

Runs Python 3.11 on the device, plus a shell and app control.

### Folder sync

Choose a folder to sync with your container's `/work` folder. Files over 400 KB and binary files are left out rather than cut short.

### Files app

Your container appears as a storage location, so any "choose a file" dialog can reach it.

### /goal in the agent tab

[/goal](https://zerolog.ch/docs/goal) works here too. The check runs on the server, the same as in the web chat.

### Your own CLIs

Claude Code and Codex run in Termux (from F-Droid or GitHub, not the Play Store) inside a small Ubuntu the app sets up, about 1 GB. Settings → CLI sign-in shows the setup line. Each tool signs in through its own page in Chrome; the app never sees the code.

### Signing out

Removes the sign-in token from the phone's secure storage. Version 2.0.0-a3 fixes a bug that left it behind.

### Crash reports

After a crash the app sends the error type and the line in its own code on the next start. No account, chat or device ID.

**Download and installation**

Needs Android 8.0 or later. The download needs a signed-in ZeroLog account; if needed, you are sent to sign in and returned to the app page. The current build is 2.0.0-a3, a pre-release. It installs over earlier 1.x versions and keeps your settings. It is signed with a new key: if you installed 2.0.0-a1, uninstall that once first. Later updates install over a3. The [Android app page](https://zerolog.ch/mobile) lists the file, its SHA-256 checksum and the checksum of the signing key; the previous version, 1.21.7, stays available there.

[Open the Android app page](https://zerolog.ch/mobile)

## Phone jobs

Ask the agent in a chat for something that needs your phone. It answers with a plan card. Nothing runs yet.

1. Tap **Auftrag vorbereiten** (prepare job). The app lists the apps the plan needs. They form the job's allow-list, and apps the app protects are never on it. You can remove an app, add one with **App auswählen**, say whether the agent may ask you questions, and choose whether screenshots go to the AI (**Bilder an KI**).
2. Start the screen share. Android asks for your consent. From Android 14 it offers only the whole screen.
3. While the job runs, a small overlay shows the steps with **Pausieren** (pause), **Stoppen** (stop) and **Übernehmen** (take over). Pause holds at the next safe point, between two steps, and ends the screen share; continuing asks Android for consent again. Stop ends the job. Take over ends the agent's control and leaves the phone to you.
4. When the job ends, a result screen shows what happened. **Im Workspace weiterarbeiten** opens the chat that holds the plan and the steps.

The agent reads or taps only in apps on the allow-list. Anything else in the foreground is blocked, even with Privacy Guard switched off. During a job it cannot use the shell, send intents, open the browser or touch files. Screenshots leave the phone only when **Bilder an KI** is on, the screen share is active and an allowed app is in front. They go to the model; a model that cannot read images gets a note instead.

Limits: on some system screens, such as Settings and Files, Android hides overlays from other apps, so the panel is not visible there. Pause and stop then work from the app, and ending the screen share from the status bar pauses the job. A pause does not interrupt a step that is already running. How reliably each model proposes a plan has not been measured yet.

## Phone control

The agent can read the screen, tap, type and scroll in other apps once you allow Android's accessibility service. On Android 13 and later that switch is greyed out for apps from outside a store: tap it once, then App info → ⋮ → Allow restricted settings.

### Set up Claude Code and Codex in Termux

1. Install Termux from [F-Droid](https://f-droid.org/packages/com.termux/) or [the Termux GitHub releases](https://github.com/termux/termux-app/releases). The Play Store build cannot accept the app’s command handoff.
2. In the Android app, open Settings → CLI sign-in. Review and copy its setup line into Termux; it allows the app to start commands there.
3. Start setup. It prepares a small Ubuntu and supported CLIs. Allow about 1 GB and leave Termux running until setup finishes.
4. Choose sign-in beside a CLI. Follow that tool’s page in Chrome; the tool receives its own callback. Its account, limits and conversation remain separate from ZeroLog chat.

A connected tool appears in the agent’s model list and can use approved phone tools through the local bridge. Tools depend on the mode: the restricted phone-job mode above does not permit shell, intents or file access.

### Migration and file identity

The current pre-release package is `ch.zerolog.zerocode.debug`. The old web-only ZeroLog app is separate: keep it until sign-in to the native app works. For 2.0.0-a1, follow the signing-key migration on [Mobile’s file section](https://zerolog.ch/mobile#file). Keep an export of important data before uninstalling an app. Updates from earlier 1.x versions preserve settings as described on the download page.

### If setup fails

Write to [info@zerolog.ch](mailto:info@zerolog.ch) with your Android version, the step and visible error. For CLI setup, include only relevant last log lines after removing credentials, private paths and project content. Current and previous APK links and checksums are on [Mobile](https://zerolog.ch/mobile#file). This is not a report of a new device test.

## A phone job in the Android app

Mermaid source of the diagram on this page:

```mermaid
%% Android app, phone job. Facts from the app page and /mobile (2.0.0-a3, build 2102). The 2.0 native source was not available for this check.
flowchart TB
  ask["1. You ask the agent in a chat<br/>for something on your phone"]
  plan["2. Plan card in the chat<br/>Nothing runs yet"]
  prep["3. Prepare job: review the apps<br/>(allow-list), questions,<br/>screenshots to the AI on or off"]
  share["4. Start the screen share<br/>Android asks for consent"]

  subgraph RUN["Job running"]
    run["Agent reads and taps only<br/>in allow-listed apps"]:::hot
    ov["Overlay with the steps"]
  end

  pause["Pause: holds at the next safe<br/>point, ends the screen share"]
  stop["Stop: ends the job"]
  take["Take over: the phone<br/>is yours again"]
  res["5. Result screen<br/>Continue in the workspace"]

  ask --> plan --> prep --> share --> run
  run --- ov
  ov --> pause
  ov --> stop
  ov --> take
  pause -->|"continue asks<br/>for consent again"| run
  run --> res
  stop --> res
  take --> res

  classDef hot stroke:#8f7ac9
```
