A fast, native, open-source IDE for Android — in the spirit of Zed, built for foldables and tablets, running entirely on your device.
⚠️ Early development. The foundations (Rust engine, JNI bridge, adaptive UI shell) are in place; the editor itself is being built. Nothing here is usable as a daily driver yet.
Conquest Code aims to be for Android what Zed is for the desktop: an IDE that opens instantly, never drops a frame while you type, and treats AI agents as first-class citizens through the Agent Client Protocol (ACP).
- Truly local. Everything — editing, syntax highlighting, language servers, terminals, agents — runs on the Android device. No cloud workspace, no remote VS instance, no account.
- Zed's engine, not a lookalike. The core reuses Zed's actual Rust crates (rope/CRDT text engine, tree-sitter integration, grammar assets) compiled for Android with the NDK.
- Built for big and small screens. Foldables and tablets get a full workspace (project panel, splits, docks); phones get a slimmer, focused layout. Same app, adaptive UI.
- A real Linux userland. The terminal runs a genuine Debian through
proot—apt installwhatever you need, from Debian's own repositories, on your phone. The terminal emulation builds on the excellent work of Termux. - AI-native via ACP. ACP is a standard and the panel is agent-agnostic: any ACP-speaking agent you configure can run against your project, with the same panel-based agent UX Zed pioneered.
- No telemetry. No analytics. Ever. In the tradition of VSCodium: the user's code and behavior are nobody's business.
A Rust engine (core/) owns everything that isn't pixels: buffers
(Zed's rope/CRDT), syntax (tree-sitter), language intelligence (LSP),
project state, git, and ACP agent sessions. A Kotlin/Jetpack Compose app
(app/) owns everything visual and platform-specific: rendering, input,
window/fold awareness, storage access. The two meet at one deliberately
narrow, coarse-grained JNI boundary. See
docs/ARCHITECTURE.md for the long version,
docs/BUILDING.md to build it yourself, and
docs/SHORTCUTS.md for the keyboard and mouse
bindings — the app is meant to be driven from a keyboard, including in
Samsung DeX.
| Area | State |
|---|---|
| Rust core ↔ Kotlin JNI pipeline | ✅ working end-to-end |
| Adaptive workspace shell (tablet/phone) | ✅ first version |
| Rope/CRDT text engine (from Zed) | ✅ vendored & wired through JNI |
| Tree-sitter syntax highlighting | ✅ in-engine, 21 languages |
| Custom high-performance editor surface | ✅ v1: virtualized canvas, IME editing, selection & clipboard, Zed themes |
| Project tree (Zed worktree in-engine) | ✅ lazy, gitignore-aware; open files from the panel |
| Tabs, save & external change detection | ✅ dirty dots, atomic save, live reload |
| Projects: create, switch, import & export | ✅ app-private storage, SAF folder import/export |
| Fuzzy file finder | ✅ Ctrl+P, match highlighting |
| Command palette | ✅ Ctrl+Shift+P, every command with its chord, Zed's action names |
| Find in file | ✅ Ctrl+F, case/word/regex, every match highlighted |
| Search across the project | ✅ engine-side, cancellable, gitignore-aware |
| Multiple cursors & line operations | ✅ Ctrl+D, cursors above/below, move/duplicate/delete line, toggle comment |
| Autoclose, auto-indent, indent guides | ✅ from the language's own brackets |
| Project panel as a file manager | ✅ new/rename/delete/duplicate, context menu, full keyboard |
| Docks | ✅ each panel left or right by setting, one per dock, both resizable |
| Themes | ✅ eleven of Zed's own, with a live-preview picker |
| Settings | ✅ JSONC file that keeps your comments, settings screen |
| Integrated terminal | ✅ shells in the project directory, tabs, theme colours, keyboard/mouse/touch |
| Terminal sessions survive backgrounding | ✅ foreground service, notification with Stop all, survives a swipe from Recents |
Debian userland (apt) |
✅ in the full edition — installs on demand, ~30 MB |
| Clone a repository into a project | ✅ progress and cancel (full edition) |
| Git status colours in the project panel | ✅ engine-side, from the theme's own colours |
| Git panel | ✅ Ctrl+Shift+G, stage/unstage/discard/commit, keyboard and touch |
| Diff bars in the gutter, inline blame | ✅ Zed's own widths and colours; blame while the file is clean |
| Diff view, history, push | ✅ unified diffs as tabs, Changes/History tabs, push and publish |
| Commit graph | ✅ lanes, refs, paging, per-commit files |
| Markdown and SVG preview | ✅ the toolbar's 👁, split beside the editor or full screen |
| Images, audio and video | ✅ opened as media, never as a text buffer |
| Soft wrap | ✅ soft_wrap, off by default as in Zed |
| Go to line | ✅ Ctrl+G, 42:8, Escape puts everything back |
| Code folding | ✅ from the language's own syntax tree, gutter chevrons and chords |
| Breadcrumbs & outline | ✅ the symbol path at the caret, Ctrl+Shift+O for the picker |
| Sticky headers in the project panel | ✅ ancestors pin above the list, as in Zed |
| Navigation history | ✅ back and forward across the places you jumped from |
| Language servers on-device | ✅ diagnostics, completions, hover, go-to-definition; servers installed with apt (full edition) |
| Interface size | ✅ Ctrl+= / Ctrl+- / Ctrl+0, and a settings row — all the chrome scales |
| ACP agent panel | ✅ conversations with any ACP agent — permission-gated edits, unified diff review, plans; agents are configured in agent_servers (settings.json or the Settings screen), none are bundled or named in code (full edition) |
Two builds come out of this repository, and the difference is worth knowing before you download one:
full— includes the Debian userland, soaptworks. Android only permits that at an older target SDK, which Google Play does not accept, so this edition comes from F-Droid or a direct APK.play— Play-compatible. Everything else is identical; the terminal runs Android's own shell and there is noapt.
See docs/BUILDING.md for the details and docs/USERLAND.md for what the userland can do.
See CONTRIBUTING.md. Testing on real foldables and tablets is especially valuable.
Conquest Code is licensed under GPL-3.0-or-later (see LICENSE). It stands on the shoulders of:
- Zed (GPL-3.0 / Apache-2.0) — the engine crates this project reuses, and the design north star.
- Termux (GPLv3, with an
Apache-2.0 heritage from
Android Terminal Emulator)
— its
terminal-emulatorandterminal-viewlibraries are vendored here undervendor/, and its work is the reference for running a real userland on Android. - proot (GPL-2.0) — the userspace chroot that lets a Linux distribution run without root.
- Debian — the userland itself, and the package archive behind it.
- VSCodium (MIT) — proof that a community can keep an IDE honest.
Full provenance, licences and the source offer for the binaries we ship are in docs/THIRD_PARTY.md.
This project is not affiliated with or endorsed by Zed Industries, Termux, Debian, or VSCodium.