阿良家的AI API网关 - 提供稳定可靠的AI接口服务
Translation pending
Developer toolsTypeScript · JavaScriptGitHub @aliang-oneOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
how to manage your vibecoding session anytime,anywhre at phone
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
AI coding agents in your pocket — take over the Claude Code / Codex / OpenCode sessions running on your computer, right from your phone.
aliang is a mobile client built with React Native. It talks to a self-hosted platform service, which bridges — through a desktop agent on your computer — to the AI coding CLIs installed there (Claude Code / Codex / OpenCode), so the vibe coding continues even when you step away:Read the full README ↗English | 简体中文
AI coding agents in your pocket — take over the Claude Code / Codex / OpenCode sessions running on your computer, right from your phone.
aliang is a mobile client built with React Native. It talks to a self-hosted platform service, which bridges — through a desktop agent on your computer — to the AI coding CLIs installed there (Claude Code / Codex / OpenCode), so the vibe coding continues even when you step away:
/goal /compact /review /diff /undo /redo /cost /memory /init /help …┌───────────────┐ HTTPS / WSS ┌───────────────┐ ┌──────────────────┐
│ Phone app │ ◄──────────► │ Platform │ ◄─────────► │ Desktop agent │
│ (this repo) │ auth/session │ service │ device │ Claude Code / │
│ React Native │ approvals/ │ (gateway) │ channel │ Codex / OpenCode│
│ │ notifications│ │ │ │
└───────────────┘ └───────────────┘ └──────────────────┘
This repository contains only the mobile client. The platform service and the desktop agent are separately deployed pieces of the aliang stack and live outside this repo. The client reaches the platform service through a single URL —
PLATFORM_SERVICE_BASE_URLinsrc/config/localService.ts. Change that one line to retarget an environment.
| Area | Choice |
|---|---|
| Framework | React Native 0.85 (New Architecture) + React 19 |
| Language | TypeScript (strict) |
| Navigation | @react-navigation v7 (native-stack + bottom-tabs) |
| State | zustand (persisted + hydration) |
| Terminal | @xterm/xterm + addon-fit |
| Native | Nitro Modules, react-native-vision-camera (scanning), react-native-keychain (credentials), react-native-notify-kit (notifications), react-native-live-audio-stream (voice) |
| Motion | react-native-reanimated 4 + worklets, react-native-gesture-handler |
| i18n | i18next (zh / en) |
| Testing | Jest + react-test-renderer (130+ suites, 1000+ cases) |
package.json engines)bundle install + bundle exec pod install)git clone <your-fork-url>
cd AliangVibeCodingPhone
npm install
# iOS only (first clone, or after native deps change)
bundle install
cd ios && bundle exec pod install && cd ..
npm run android
npm run ios
Before launching, point PLATFORM_SERVICE_BASE_URL in src/config/localService.ts at your platform service.
Release builds fail closed when signing is missing or only partially configured. Provide signing via environment variables:
export ALIANG_RELEASE_STORE_FILE=/absolute/path/to/release.jks
export ALIANG_RELEASE_STORE_PASSWORD='<store-password>'
export ALIANG_RELEASE_KEY_ALIAS='<key-alias>'
export ALIANG_RELEASE_KEY_PASSWORD='<key-password>'
npm run android:release # current architecture
npm run android:release:arm64 # arm64-v8a only
npm run android:release:full # all architectures
For internal testing only,
ALLOW_DEBUG_RELEASE_SIGNING=trueproduces a debug-signed APK — that artifact must not ship as a production update.
Pushing a v* tag that points at a commit on main — e.g. git tag v1.0.1 && git push github v1.0.1 — triggers the Release APK workflow: an arm64-v8a release APK is built with VERSION_NAME/VERSION_CODE derived from the tag, then attached to the GitHub Release for that tag (and uploaded as a workflow artifact).
To get production-signed APKs, set these repository secrets:
| Secret | Value |
|---|---|
ALIANG_RELEASE_KEYSTORE_BASE64 | base64 of your release .jks keystore |
ALIANG_RELEASE_STORE_PASSWORD | keystore password |
ALIANG_RELEASE_KEY_ALIAS | key alias |
ALIANG_RELEASE_KEY_PASSWORD | key password |
Without them the workflow still succeeds and publishes a debug-signed APK that anyone can download and install — this is the intended default for this repo. Since every CI build signs with the same public debug.keystore committed in the repo:
versionCode),npm run android) are signed with the same key, so they upgrade-install over the released ones and vice versa,npm start # start Metro
npm run lint # ESLint
npm run typecheck # tsc --noEmit
npm test # full Jest suite
Helper scripts live in scripts/ (run-android.js / run-ios.js / build-android-release.js / generate-icons.mjs / stop-metro.js), wired up through package.json scripts.
├── App.tsx # app entry (navigation, notifications, presence heartbeat)
├── src/
│ ├── api/ # platform-service API client (REST + WebSocket + STT)
│ ├── app/ # navigation setup
│ ├── components/ # shared components
│ ├── config/ # single source of truth for service endpoints
│ ├── i18n/ # UI copy (locales/<domain>/<lang>.json)
│ ├── screens/ # screens: auth / devices / projects / vibecoding / operations / preview / settings / terminals
│ ├── services/ # WebSocket, notifications, credentials, file cache, voice
│ ├── store/ # feature stores (zustand)
│ └── theme/ # theming (dark mode)
├── stores/ # global settings store
├── docs/superpowers/ # design specs & implementation plans
├── __tests__/ # Jest tests
└── scripts/ # dev helper scripts
Every major feature has its own design spec and step-by-step plan under docs/superpowers/:
specs/ — design documents (background, approach, trade-offs), e.g. biometric login, voice-to-bash, tiered MCP auto-approvalplans/ — the corresponding implementation plansIssues and PRs are welcome — see CONTRIBUTING.md (in Chinese).