Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

161 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitView

A VS Code–like native mobile code editor for your own git repositories, plus a chat tab where a full-tool Claude session reads and writes the same repo — browse, edit, and commit from your phone, then hand the repo to Claude. Single-user / personal use.

It serves two co-primary device classes from one Android APK: a standard LCD phone/tablet, and a Bigme B7 Pro color e-ink tablet — each a first-class experience, neither a bolt-on.

Android app (thin client)  ──HTTPS REST + one WebSocket, over Tailscale──▶  Bridge (Node.js + TS)
  Compose · Sora editor                                                      git read/write
  DisplayProfile (Standard | E-Ink)                                          Claude session manager
  Keystore tokens                                                            audited MCP write surface

No git engine and no agent run on the device. A small bridge runs where your repos live; the handheld browses/edits/commits through it and drives a Claude session that executes on that host.

Why

Driving a Claude agent on your own machine from your phone is now largely solved by first-party Anthropic features (Remote Control) and the Claude Agent SDK — so GitView adopts those and invests in its genuine differentiators: a native editor and a first-class color e-ink experience alongside a first-class standard one.

Repository layout

Path What
bridge/ Node.js + TypeScript server: git read/write, Claude session manager, transport
android/ Kotlin + Jetpack Compose app: editor, browse/diff/log, chat, DisplayProfile
docs/ Architecture, plan, protocol, security, decisions, e-ink, setup

Docs

  • ARCHITECTURE — components and request lifecycles
  • PLAN — phased build plan (MVP = phases 0–3)
  • API — the frozen wire protocol (source of truth for both ends)
  • SECURITY — the full-read/write, low-friction security model
  • DECISIONS — ADRs (owner-mandate / research-backed / design-choice)
  • EINK — the Color E-Ink profile and Bigme refresh strategy
  • SETUP — run the bridge, expose over Tailscale, build & pair the app

Requirements

On the host (the machine running the bridge):

  • Node.js 20+ and git.

  • Claude Code installed and signed in — required for chat. The bridge drives the Claude Code CLI on your machine; the packaged .deb does not bundle it (the Agent SDK ships it as a ~222 MB per-architecture binary, which would make the package ~30× larger and architecture-specific). Browsing, diffing, and editing repos work without it — only chat needs it.

    The bridge finds the CLI automatically: the SDK's own bundled binary if you installed from source, otherwise claude on PATH, then the usual install locations. To point at a specific binary, set claude.cliPath in config.yaml (or the GITVIEW_CLAUDE_CLI environment variable):

    claude:
      cliPath: /home/you/.local/bin/claude    # absolute path

    If no CLI is found, chat fails with a message naming these options — check with which claude, and note the bridge resolves it as the user the service runs as (the .deb runs as the installing user, so a CLI in that user's ~/.local/bin is found).

On the device: Android 8.0+ (API 26).

Quick start

# Bridge
cd bridge && npm install && cp config.example.yaml config.yaml   # edit repo path(s)
npm run dev                                                        # prints a pairing code

# App
cd ../android && ./gradlew :app:assembleDebug                     # local.properties -> your SDK

Then expose the bridge with tailscale serve --https=443 http://127.0.0.1:8787 and pair the app to the resulting https://…ts.net URL. Full walkthrough in SETUP.

Releases & verification

Prebuilt artifacts are attached to each GitHub Release: gitview-<version>.apk (Android app) and gitview-bridge_<version>_all.deb (host bridge), plus a SHA256SUMS file.

1. Integrity — the files match what was released:

sha256sum -c SHA256SUMS      # run in the folder with the downloaded files → "OK" for each

2. Authenticity — the APK was signed by the project's release key. Every GitView release APK is signed with the same key; verify its certificate fingerprint:

apksigner verify --print-certs gitview-<version>.apk      # Android build-tools
#   or, with only a JDK:  keytool -printcert -jarfile gitview-<version>.apk

and confirm the SHA-256 certificate digest equals:

67:53:4C:58:CB:46:3E:42:D7:8E:38:8C:8C:60:C7:19:3C:86:F1:36:4B:43:DB:C7:03:34:08:D3:28:A2:19:34

(Owner CN=Aldwin Hermanudin, O=Teapot Laboratories.) A matching digest means the APK was produced and signed by this project; a mismatch means do not trust it. This fingerprint is stable across all releases, so an install that fails to update with "signatures don't match" is the wrong key — not a newer version. The .deb carries its version in the package metadata (dpkg-deb --info …); verify it via the SHA256SUMS entry above.

Status

Compiling scaffold covering MVP phases 0–3: the bridge boots, pairs, and serves git read/write (verified end-to-end); the app assembles to a debug APK. Highlighting grammar wiring, diff UI, and on-device e-ink refresh tuning are the marked next steps — see PLAN.

Research provenance

The design was validated against the mid-2026 Claude ecosystem and target hardware via two adversarially-verified research passes. Two findings corrected the brief and are reflected in the code: Sora Editor is LGPL-2.1 (not MIT/Apache — ADR-013) and the confined-agent profile is built from allowedTools/disallowedTools rather than the unverified tools:[] mechanism (ADR-012). See DECISIONS.

Related work

slopus/happy — an MIT, open-source mobile + web client for Claude Code (and Codex), built with TypeScript + Expo, offering remote agent control with end-to-end encryption. It's close prior art for GitView's chat side (a phone client driving a Claude Code session on your machine). GitView differs in being a native Kotlin/Compose app with a first-class editor and color e-ink experience, driving git through a self-hosted bridge — where Happy focuses on the encrypted remote-control channel. Worth studying for its sync/transport and mobile agent UX. (Also a useful cross-check on the SDK's permission modes — see ADR-012.)

License

MIT (see LICENSE). GitView depends on the LGPL-2.1 Sora Editor as an unmodified library; your use of GitView's own code remains under MIT. See ADR-013.

About

GitView — native Android code editor + Claude chat over a Node/TS bridge, for LCD and Bigme color e-ink

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages