Knotwork

app.knotwork.android
by Zapstore Catalog

An AI agent that runs on your phone and asks before it acts

Knotwork is an AI agent that runs its model on the phone. Instead of a prompt box wired to somebody's API, every conversation runs through a pipeline you can open and edit: a graph of typed nodes - input, on-device LLM, optional cloud LLM, tool call, routing, decomposition, evaluation, clarification, output. When a step wants to do something destructive or sensitive, it stops and asks you first - including in the background, where the confirmation arrives as a notification. WHAT IT DOES - Runs on your device. On-device inference through LiteRT-LM, with optional GPU acceleration; CPU-only works, just slower. Cloud providers (OpenAI, Anthropic, Google Gemini, DeepSeek, OpenRouter, Groq) and a server you run (Ollama or any OpenAI-compatible one) are optional and use your own key. - You build the behaviour. A drag-and-drop editor with pan and pinch-zoom, snap-to-grid, auto-layout, inline validation and a run-trace overlay, across 14 node types. Prompt variables such as $DATE, $TIME, $TOOLS, $MODEL and $MEMORY_SUMMARY render fresh on every run. - Tools, gated by you. Built-in tools and external servers through the Model Context Protocol (MCP). By default every sensitive or destructive call stops for explicit confirmation, enforced where the tool executes, not merely suggested to the model. - Reaches you from outside the app. A share target, launcher shortcuts and a Quick Settings tile run your chosen pipeline over shared text or images. Triggers (time, charging, Wi-Fi, network) fire a pipeline on their own and report back. Every entry surface stays inert until you bind a pipeline to it. - Remembers what matters. Long-term memory with semantic retrieval over past conversations, automatic fact extraction, search and export. WHO IT IS FOR It is for the person who already runs Tasker, Obsidian, Home Assistant or a local model on their own hardware, and who wants to know exactly what their agent does with their data. PRIVACY There is no account, no sign-in and no server of mine. Inference runs on the phone, so a normal conversation never leaves it. Data goes out only along paths the privacy policy lists, each off until you switch it on - except the built-in Wikipedia lookup, on by default. Usage statistics stay on the device and are never transmitted; a build-time check fails the build if any network dependency reaches that code. The database - chats, memory, run traces - is SQLCipher-encrypted, and API keys are sealed under an Android Keystore key. Crash reporting is opt-in, off by default, and absent entirely from the FOSS build. KNOWN LIMITATIONS This is a pre-release. The public surface, the settings layout and the on-device storage formats can still change between versions. - English interface only. - Android 14+ and about 2 GB of free RAM - the memory is the real constraint. - On some phones the screen freezes while the model runs on the GPU; switch it to CPU. - Shared pipeline files are not a compatibility contract before 1.0. Keep the original. - Background runs need the battery setting on Unrestricted. Without it Android reclaims the process in about ten seconds - the platform's rule, not a bug, but until you grant it background pipelines will not run. - Cloud failure behaviour differs by provider: detection of a stream that dies mid-answer is enabled only where it was measured. - Other apps' AppFunctions are out of reach - Android keeps the permission to call one for system apps. The local catalogue is what ships, plus whatever you connect over MCP. - One maintainer, no company behind it. Open source under the Apache License 2.0; source, documentation and an FAQ are on the developer website.

First release: Nov 2, 2026, 1 total release.

Most recent release: Nov 2, 2026.

Repo

Appears in 0 app stacks.

0 sats / 0 zaps received in the past year.

Sats Received

Underlying data available via MCP: app_zaps, app_releases.

Zap Count

Underlying data available via MCP: app_zaps, app_releases.

Releases

  • Nov 2, 2026 0.13.0
    A minor release about long text: a long chat message or a long value in the console now opens whole, and a long string no longer freezes the screen that shows it. Nothing in storage changes. **Upgrading from 0.12.2 is an ordinary in-place update** within the same signer: a GitHub release or the F-Droid copy over a GitHub or F-Droid install, or Google Play over Google Play. ## Long messages open whole A chat message over 6 000 characters, the agent's or your own, shows its beginning with *Read whole message* below it. That opens the whole message full screen, with *Copy* and a scroll thumb that names the section you are in. Long code blocks and tables are drawn in parts, and a wide table still scrolls sideways as one. ## Long values in the console
    More…
    A row in the console's Vars tab shows the first three lines of its value and its size. Tap it to open the whole value: JSON laid out one key per line and coloured, text with its own lines. *Copy value* now copies the value alone, exactly as it was. ## Fixed - The *Live metrics* screen no longer closes the app over a repeated log line. - A long answer without spaces, such as minified JSON or base64 from a tool, no longer freezes the chat. - A long value no longer freezes the console. - A copy too large for the clipboard says so, instead of failing unnoticed. ## Which file to download - **`knotwork-0.13.0-full-release.apk`** — the standard build. This is the one to take unless you have a reason not to. - **`knotwork-0.13.0-foss-release.apk`** — no crash reporting and no analytics. - **`knotwork-0.13.0-full-release.aab`** — for the store pipeline, not for sideloading. ## Verifying what you downloaded `SHA256SUMS.txt` covers all three files. The APKs are signed with: ``` C=CL, CN=Aleksei Volodin SHA-256: e50c8aa47c38c808e449c87dbcd4ab9d0d810bcd8ca9d33fd0ce83d492c81651 ``` Check it with `apksigner verify --print-certs <file>.apk`. A build signed by `C=US, O=Android, CN=Android Debug` did not come from this release. The key is unchanged from 0.12.2, so this installs in place over a copy from a GitHub release. ## Pre-release This is still a pre-release. Storage formats, the pipeline JSON schema, the Kotlin public surface and the settings layout can change between minor versions without a migration path. Two deliberate exceptions: the external-automation contract's action, keys, statuses and refusal reasons stay frozen, and every backup format version stays readable. Full details, including everything not summarised here: [CHANGELOG at this tag](https://github.com/alexeyw/knotwork/blob/v0.13.0/CHANGELOG.md).