Releases: joshtech90/PocketClot
Release list
v0.2.0 — Multi-provider auth + token usage + full i18n
v0.2.0 brings multi-provider Claude authentication, token usage tracking, complete localization in 7 languages, and several security + bug fixes.
Highlights
Multi-provider Claude auth
Each user can pick which backend their messages go through:
- Pro/Max (default): OAuth via the
claude loginsession on the server. Runs against your Pro/Max subscription. Same behavior as v0.1.0. - Anthropic API: direct console API key (
sk-ant-…). Pay-as-you-go billing against the Anthropic Console account. - AWS Bedrock: routes via Amazon Bedrock with your AWS credentials. Supports Claude Opus 4.7 on Bedrock-pinned model IDs.
Picker lives in Settings → Claude connection in both the app and the web UI.
Token usage tracking
Per-user aggregate of input/output/cache tokens lives in Settings → Token usage. Useful for the Anthropic-API and Bedrock paths where each request shows up on a real invoice.
Complete localization
All user-facing strings in the app and web UI translated into 7 languages: English, German, Spanish, French, Brazilian Portuguese, Simplified Chinese, Japanese. Switch language under Settings → Appearance → Language (app) or Settings → Language (web UI).
Security hardening
- Bash skill is off by default. Set
ALLOW_BASH=1in.envto opt in. Closes a hole where any app-account user could execute commands as thepocket-claudesystem user. BILLING_ACCOUNT_IDis no longer hardcoded — set via env var; the billing widget hides itself when unset.
Bug fixes
- New-chat button: tapping "New chat" from the drawer used to scroll to the end of the current chat instead of opening a fresh conversation. Fixed.
- Installer:
install-linux.shnow skips Node + npm + claude-cli installation when a workingclaudebinary is already on PATH. Also warns when the binary isn't visible to the service user. - Installer: repo URL updated to the new mono-repo (
joshtech90/PocketClaude). - systemd unit: removed
ProtectHome=true— it silently broke OAuth (CLI couldn't read its credential file). The other hardening flags stay on.
Multi-auth correctness fixes
- Mode-switch session-stale: switching from Pro/Max → API → Bedrock used to leave cached CLI session IDs in place, so the first message after a switch failed (user had to resend). The server now drops session IDs across the user's conversations on a real mode change.
- Bedrock pre-flight: switching to Bedrock without AWS credentials now fails eagerly with a clear 400 instead of producing an opaque CLI timeout on the next chat.
- Bedrock model-alias validation: PUT used to accept any string for
bedrock_model_aliasand silently fall back to opus; now returns 400 with a clear message.
i18n consistency fixes
- A broken
settings_tts_section_cloud_bodysource string (German + truncated, that all 6 translations had dutifully copied) was rewritten and re-translated. - The Effort chips (Off / Low / Medium / High / Very high / Maximum) and the Info-popup OK button ("Got it") were the last hardcoded German strings — now properly localized.
Web-UI fixes
- A dead
openSettingsreassignment meant the image-API-key block and admin user list never loaded when the settings modal opened. Fixed. %%printf-escape now renders as%(was showing literally as "80%% context").- "Error: …" prefixes localized.
- Settings-modal status text auto-clears on close.
SDK upgrade
claude-agent-sdkconstraint raised to>=0.2.82,<1.0. The 0.1 line is incompatible with current Claude Code CLI builds.
Upgrade
For existing v0.1.0 installations:
# On the Linux host
sudo systemctl stop pocket-claude
cd /opt/pocket-claude && sudo -u pocket-claude git pull
sudo -u pocket-claude .venv/bin/pip install -r requirements.txt --upgrade
# IMPORTANT — re-install the systemd unit (the ProtectHome=true line was
# silently breaking OAuth):
sudo cp deploy/systemd/pocket-claude.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl start pocket-claudeThen install the new APK from this release.
Full changelog
See CHANGELOG.md.
v0.1.0 — Initial public release
First public release of Pocket Claude — a self-hosted personal Claude chat front-end that runs on your own Pro/Max subscription via the Claude Code CLI.
What's in this release
Server — Python FastAPI + SQLite (FTS5) + built-in web UI. One-line install on any Linux box, tunnel via Tailscale Funnel (free, persistent *.ts.net URL) or Cloudflare Named Tunnel.
Android app — Kotlin + Jetpack Compose, Material 3, minSdk 31 (Android 12+). The attached PocketClaude-v0.1.0.apk is a debug build you can sideload directly.
Highlights
- 💬 Multi-user authentication (scrypt + session tokens). One Pro/Max account, many users.
- 📡 SSE streaming with retry interceptor and 60-second keep-alive — stable over Tailscale Funnel.
- 📎 Liberal file attachments (images, PDFs, code, configs, JSON, CSV).
- 🔍 Full-text search across all conversations (SQLite FTS5) with spring-to-match in the app.
- 🔊 Three TTS providers: Microsoft Edge (free), Gemini Direct API (free tier), Google Cloud TTS (Chirp 3 HD).
- 🎨 Image generation via Gemini Nano Banana.
- 🎭 Four system-prompt modes — Standard, Permissive, Ultra-Liberal, Custom.
- 🛠 Per-chat skill toggles — WebSearch, WebFetch, Bash.
- 🔐 AES-256 encrypted backups.
- 🌐 7 languages — English, German, Spanish, French, Brazilian Portuguese, Simplified Chinese, Japanese.
Quickstart
# 1. On your Linux host
curl -fsSL https://raw.githubusercontent.com/joshtech90/PocketClaude/main/server/deploy/install-linux.sh | sudo bash
# 2. Sign Claude into your Pro/Max subscription
sudo -u pocket-claude -H claude login
# 3. Set up a persistent public URL (free, no domain needed)
sudo bash /opt/pocket-claude/deploy/setup-tailscale-funnel.shThen install the APK on your Android device (or build from source), add the URL printed by the funnel script as a profile, log in with the initial admin password (saved at /opt/pocket-claude/data/INITIAL_PASSWORD.txt), and you're done.
Documentation
- README (English) — also available in Deutsch, Español, Français, Português (BR), 中文, 日本語
- Deployment guide (Tailscale + Cloudflare)
- Daily-development workflow
- Full changelog
Disclaimer
Self-hosted hobby project. Not affiliated with Anthropic. Bring your own Pro/Max subscription.
Contributing
PRs welcome — especially for completing translations of long-form settings help texts, iOS client, and Docker packaging. One PR per language for translations.