{"id":51447143,"url":"https://github.com/howardleegeek/openclaw-mobile","last_synced_at":"2026-07-05T17:01:18.394Z","repository":{"id":337516686,"uuid":"1153985877","full_name":"howardleegeek/openclaw-mobile","owner":"howardleegeek","description":"ClawPhones — Multi-platform AI assistant for Oyster Labs hardware (Universal Phone, Puffy, ClawGlasses). Tiered LLM routing (DeepSeek/Kimi/Claude), conversation persistence, SwiftUI + Android + FastAPI.","archived":false,"fork":false,"pushed_at":"2026-04-11T19:25:46.000Z","size":3198,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-11T21:17:55.875Z","etag":null,"topics":["ai-assistant","android","depin","fastapi","llm","mobile","oyster-labs","swiftui"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/howardleegeek.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-02-09T22:23:02.000Z","updated_at":"2026-04-11T19:25:56.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/howardleegeek/openclaw-mobile","commit_stats":null,"previous_names":["howardleegeek/openclaw-mobile"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/howardleegeek/openclaw-mobile","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/howardleegeek%2Fopenclaw-mobile","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/howardleegeek%2Fopenclaw-mobile/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/howardleegeek%2Fopenclaw-mobile/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/howardleegeek%2Fopenclaw-mobile/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/howardleegeek","download_url":"https://codeload.github.com/howardleegeek/openclaw-mobile/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/howardleegeek%2Fopenclaw-mobile/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35162071,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-05T02:00:06.290Z","response_time":100,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-assistant","android","depin","fastapi","llm","mobile","oyster-labs","swiftui"],"created_at":"2026-07-05T17:01:17.593Z","updated_at":"2026-07-05T17:01:18.385Z","avatar_url":"https://github.com/howardleegeek.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ClawPhones\n\n**On-device AI assistant for [Oyster Labs](https://oysterecosystem.com) hardware.**\n\nClawPhones ships pre-installed on the Universal Phone, Puffy, and ClawGlasses. It provides a unified voice + text chat interface backed by a tiered LLM routing system that transparently selects the best model for each user's subscription level.\n\n- **30,000+ devices** deployed across DePIN network\n- **3 LLM tiers** — DeepSeek (Free), Kimi (Pro), Claude (Max)\n- **Server-side conversation persistence** — full chat history synced across sessions\n- **OpenAI-compatible API** — standard `/v1/chat/completions` protocol\n\n## Architecture\n\n```\n┌─────────────┐  ┌──────────────┐\n│  iOS App    │  │  Android App │\n│  (SwiftUI)  │  │  (Java)      │\n└──────┬──────┘  └──────┬───────┘\n       │                │\n       └───────┬────────┘\n               ▼\n     ┌─────────────────┐\n     │  OpenClaw Proxy  │    FastAPI + aiosqlite\n     │  api.openclaw.ai │    Token auth (ocw1_*)\n     └────────┬────────┘\n              │\n     ┌────────┼────────┐\n     ▼        ▼        ▼\n DeepSeek   Kimi    Claude\n  (Free)    (Pro)    (Max)\n```\n\n## Repository Layout\n\n```\nproxy/                          FastAPI backend (~840 lines)\n├── server.py                   LLM routing, conversation CRUD, token auth\n├── requirements.txt            Python dependencies\n└── data/                       SQLite database (auto-created)\n\nios/                            SwiftUI iOS client\n├── ClawPhones.xcodeproj\n├── ClawPhones/\n│   ├── App/                    Entry point, scene delegate\n│   ├── Models/                 Codable data models\n│   ├── Services/               API client, Keychain, device config\n│   ├── ViewModels/             Chat \u0026 conversation state\n│   └── Views/                  SwiftUI screens\n└── ClawPhonesTests/\n\nandroid/clawphones-android/     Android client (Termux-based)\n├── app/src/main/java/ai/clawphones/agent/\n│   ├── ChatActivity.java       Voice-first chat UI with TTS/STT\n│   ├── ConversationApiClient.java  HTTP API client (5 endpoints)\n│   ├── ClawPhonesConfig.java   Device config \u0026 auth profiles\n│   ├── PreinstallProvisioner.java  Factory OEM provisioning\n│   └── UpdateChecker.java      OTA version checking\n└── termux-shared/              Terminal emulation layer\n```\n\n## API Reference\n\n**Base URL:** `https://api.openclaw.ai`\n**Auth:** `Authorization: Bearer ocw1_\u003ctoken\u003e`\n\n### LLM Chat (OpenAI-compatible)\n\n```\nPOST /v1/chat/completions\n```\n\nRequests are routed to a backend model based on the token's tier:\n\n| Tier | Model | Best For |\n|------|-------|----------|\n| Free | DeepSeek | Daily chat, cost-efficient |\n| Pro | Kimi | Long-context reasoning |\n| Max | Claude | Highest quality |\n\n### Conversation Management\n\n| Method | Endpoint | Description |\n|--------|----------|-------------|\n| `POST` | `/v1/conversations` | Create conversation |\n| `GET` | `/v1/conversations` | List conversations (paginated) |\n| `GET` | `/v1/conversations/{id}` | Get conversation with messages |\n| `POST` | `/v1/conversations/{id}/chat` | Send message \u0026 get response |\n| `DELETE` | `/v1/conversations/{id}` | Delete conversation |\n\n### Admin\n\n```\nPOST /admin/generate-token    Generate device tokens (requires admin key)\nGET  /health                  Health check\n```\n\n## Getting Started\n\n### Proxy (local development)\n\n```bash\ncd proxy\npip install -r requirements.txt\n\n# Run in mock mode (no real LLM calls)\nMOCK_MODE=1 ADMIN_KEY=devadmin LISTEN_PORT=8080 python server.py\n\n# Verify\ncurl http://127.0.0.1:8080/health\n```\n\n### iOS\n\nRequires Xcode 15+ and iOS 17 SDK.\n\n```bash\ncd ios\nopen ClawPhones.xcodeproj\n# Or build from CLI:\nxcodebuild -scheme ClawPhones -sdk iphonesimulator build\n```\n\n### Android\n\nRequires JDK 17 and Android SDK 34.\n\n```bash\ncd android/clawphones-android\n./gradlew assembleDebug\n./gradlew testDebugUnitTest\n```\n\n## Configuration\n\n| Environment Variable | Required | Description |\n|---------------------|----------|-------------|\n| `ANTHROPIC_API_KEY` | Yes (prod) | Claude API key for Max tier |\n| `DEEPSEEK_API_KEY` | Yes (prod) | DeepSeek API key for Free tier |\n| `KIMI_API_KEY` | Yes (prod) | Kimi API key for Pro tier |\n| `ADMIN_KEY` | Yes | Admin key for token generation |\n| `LISTEN_PORT` | No | Server port (default: 8000) |\n| `MOCK_MODE` | No | Set to `1` for development without real LLM calls |\n\n## Brand\n\n**ClawPhones** — [clawphones.com](https://clawphones.com)\n\nPart of the [Oyster Labs](https://oysterecosystem.com) ecosystem: Universal Phone, Puffy, ClawGlasses, and the $WORLD token network.\n\n## License\n\nGPLv3. See [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhowardleegeek%2Fopenclaw-mobile","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhowardleegeek%2Fopenclaw-mobile","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhowardleegeek%2Fopenclaw-mobile/lists"}