Skip to content
DraxonV1Public

About

Free & Open Source Local Coding Agent for Android.

Resources

Contributing

Stars

13 stars

Watchers

1 watching

Forks

Repository files navigation

Syntac

Syntac logo

Latest version Latest channel: beta Open issues Flutter 3.41.9 Arch Linux runtime

Syntac is a local-first Android coding agent by DraxonV1.

Open a project folder on your phone, connect an AI provider, chat about code, inspect file changes, run commands, and keep project state on-device.

In development right now, expect issues & bugs. Report issues at /issues.

  • Developer: DraxonV1
  • Repository: https://github.com/DraxonV1/Syntac
  • Android package: com.syntac
  • Current version: 0.1.1-beta.6 (versionCode 16)
  • Default update channel: beta

Overview

Syntac is built for code work away from a laptop. It gives one Android app enough local context to review a project, ask an AI model for changes, inspect generated edits, and run command-line checks through an Android runtime.

Core behavior:

  • Project folders stay on your device.
  • Chat history and tool results stay on your device.
  • API keys and OAuth credentials stay in Android secure storage.
  • Model requests go only to the provider you configure.
  • Shell commands run only for the active project.

Main features

  • Local project browser with recent projects and search.
  • Chat-based coding agent with streaming responses.
  • File tools for reading, writing, patching, globbing, listing, deleting, and searching project files; explicit read-only systemwide diagnostics.
  • Bash and durable runtime job tools through packaged Android runtime or Termux bridge.
  • Provider support for Google Antigravity / Cloud Code Assist, ChatGPT Codex OAuth, Grok, and OpenAI-compatible APIs.
  • Markdown/code rendering and expandable tool result cards.
  • Startup, runtime, provider, and storage diagnostics.
  • Built-in update check with stable, beta, and nightly channels.

Shared app storage

On Android, user-visible Syntac data lives under /storage/emulated/0/.syntac/ when All files access is granted:

.syntac/syntac.sqlite
.syntac/cache/
.syntac/logs/
.syntac/natives/
.syntac/run/
.syntac/agent/SYSTEM.md
.syntac/agent/blobs/
.syntac/agent/config.yml
.syntac/agent/sessions/chats.jsonl
.syntac/agent/sessions/attachments.jsonl

Runtime rootfs, temporary PRoot files, and secrets stay app-private. Existing private and legacy chat stores migrate into this layout without overwriting current files. Global instructions live in .syntac/agent/SYSTEM.md; project .syntac/agent/SYSTEM.md or AGENTS.md overrides it. Grant storage access from Shell Runtime screen when Android reports shared access unavailable.

Android runtime

Syntac can run shell commands through:

  1. Packaged Arch Linux PRoot runtime installed into app-private storage.
  2. Termux RUN_COMMAND bridge, if Termux is installed and configured.

Termux setup:

mkdir -p ~/.termux
printf 'allow-external-apps=true\n' >> ~/.termux/termux.properties
termux-reload-settings
termux-setup-storage

Then grant Syntac the Termux command permission from Android settings.

Updates

Syntac checks update manifests for the active channel. Current default channel is beta.

Channels:

  • stable: tested public releases.
  • beta: current default channel.
  • nightly: early testing builds.

Current beta APK target:

https://github.com/DraxonV1/Syntac/releases/download/v0.1.1-beta.6/syntac-arm64.apk

Current manifest files:

update/stable.json
update/beta.json
update/nightly.json

GitHub fallback manifest URL:

https://raw.githubusercontent.com/DraxonV1/Syntac/main/update/<channel>.json

Build from source

Requirements:

  • Flutter stable with Dart compatible with sdk: ^3.11.5.
  • JDK 17.
  • Android SDK.
  • Android NDK from Flutter/Android tooling.
  • Git LFS.

Clone:

git clone https://github.com/DraxonV1/Syntac.git
cd Syntac
git lfs pull

Install dependencies:

flutter pub get

Run checks:

dart format lib test
flutter analyze
flutter test

Build debug/development APK:

flutter build apk --release

Release APK output:

build/app/outputs/flutter-apk/app-release.apk

Releases

com.syntac is public Android package identity. Keep it stable so updates install over existing beta builds.

Contribution and release flow:

  • Make source changes on a branch and open PR into master.
  • PR CI runs formatting, analysis, and tests without release secrets.
  • Review and merge PR only after CI passes.
  • Manual Android APK workflow builds signed candidate artifact without creating or moving tags.
  • Push exact version tag, such as v0.1.1-beta.6, only after candidate passes physical-phone checks. Tag must match pubspec.yaml.
  • Tag workflow rebuilds, verifies, and publishes only matching channel manifest. It never force-moves tags or overwrites other channels, then opens generated manifest-sync PR for master.

Latest beta release:

https://github.com/DraxonV1/Syntac/releases/tag/v0.1.1-beta.6

PR builds never receive release signing credentials or provider OAuth secrets.

Release artifacts:

https://github.com/DraxonV1/Syntac/releases/download/v0.1.1-beta.6/syntac-arm64.apk
update/beta.json

Reference and attribution

Thanks to oh-my-pi for protocol and agent-tool references. Current compatibility audit pins upstream commit e24466515dae616f4027170027245c6222f28ab2 in assets/models/catalog-source.json; upstream source is not vendored.

Runtime sources live under:

  • third_party/proot: PRoot
  • third_party/termux-proot: Termux PRoot fork

Provider and model icons use the official Lobe Icons unpkg CDN: https://unpkg.com/@lobehub/icons-static-svg@latest/icons/{slug}.svg. Provider and model metadata comes from bundled Models.dev snapshot. Refresh with python scripts/update_model_catalog.py; recorded SHA-256 preserves provenance.

License

About

Free & Open Source Local Coding Agent for Android.

Resources

Contributing

Stars

13 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages