Skip to content

About

Hark (hark pro) -> local OpenAI/Anthropic-compatible API on Android. Pure Kotlin, no browser.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Hark2API · Android 原生版

把 hark.com(hark pro) 的网页账号,变成手机本地一个标准的 OpenAI / Anthropic 兼容 API。 纯原生 Android 实现(Kotlin),无需 Python、无需 Docker、无需电脑——装到手机上就能跑,局域网内其他 App / agent 直接调用。

基于 WorkBuddy2API-Android(MIT)改造: 把上游从腾讯 WorkBuddy 换成 Hark,其余架构(本地 HTTP 服务、三协议适配、账号池、用量记录、保活)原样保留。


这是什么

一个跑在 Android 手机上的本地 API 网关。

你的电脑 / Claude Code / Cherry Studio / Codex CLI / 其它 agent
        │  http://<手机IP>:8788/v1/...
        ▼
┌──────────────────────────────────────┐
│      手机 (Hark2API Native)          │
│  原生 HTTP 服务 (ServerSocket:8788)  │
│  ├─ 三协议适配 (OpenAI/Anthropic/…)  │
│  ├─ Hark 上游:cookie 登录 + 轮询     │
│  └─ SQLite:账号 / 用量 / 应用 Key    │
└──────────────────────────────────────┘
        │  https://hark.com
        ▼
      Hark (hark pro)

Hark 上游是怎么接的

Hark 和 WorkBuddy 完全不同,适配集中在新增的 HarkUpstream.kt:

  • 认证:better-auth 的 httpOnly cookie。用邮箱 + 密码打 POST /api/auth/sign-in/email 直接换取 cookie,无需 OAuth、无需浏览器、无验证码。
  • 无流式:POST /api/messages/send?cid=… 立即返回 {success:true},答案靠轮询 GET /api/messages/history?conversationId=…,取新出现的 assistant 消息。 因此本 App 对客户端输出的是伪流式(整段内容一次性发一个 chunk + [DONE]), 首字延迟 = 全文生成完毕。
  • 无模型选择:模型由 Hark 服务端决定,App 对外只暴露一个固定模型名 hark。
  • 会话 cookie 有效期约 30 天,过期后自动用保存的密码重新登录(无 refresh token)。

Hark 答案会被包成一个标准 OpenAI chunk,喂进原有的协议管线——所以 Chat / Anthropic / Responses 三种协议、流式与非流式、用量记录全部自动复用。


用法

  1. 安装 APK(需自行编译,见下)。
  2. App → 账号 页 → 「Hark 登录(邮箱 + 密码)」,填入 hark.com 账号。
  3. App → 应用 Key 页 → 新建一个 Key,「调用版本」选 Hark。
  4. 其它设备 / agent 用这个 Key 调用:
curl http://<手机IP>:8788/v1/chat/completions \
  -H "Authorization: Bearer <你的Key>" \
  -H "Content-Type: application/json" \
  -d '{"model":"hark","messages":[{"role":"user","content":"你好"}]}'

Anthropic 协议走 /v1/messages,Responses 协议走 /v1/responses。


构建

# 前置:JDK 17+,Android SDK(compileSdk 36)
echo "sdk.dir=/你的/Android/SDK路径" > local.properties

./gradlew assembleDebug      # 调试版
./gradlew assembleRelease    # 发布版(需配置签名)

无 gradlew 时用本机 Gradle:gradle assembleDebug。


改动清单(相对上游 WorkBuddy 版)

文件 改动
HarkUpstream.kt 新增:Hark 上游引擎(登录 / 会话 / 轮询 / OpenAI chunk 封装)
RegionConfig.kt 新增 HARK 区域枚举
NativeCore.kt Hark 区域返回固定模型;新增 harkAccountKeys();放宽 Hark 账号校验
NativeStore.kt upsertAccount() 对 Hark 跳过 accessToken 要求
ApiHostService.kt proxy() 内新增 Hark 上游分支
MainActivity.kt 账号页新增「Hark 登录」;API Key 创建支持选 Hark 版本

限制

  • 伪流式(见上,Hark 本身不提供增量流)。
  • 单账号并发请求会串会话;多账号时各自独立会话,轮询使用会丢上下文——需要连贯上下文时用单账号。
  • Hark 为私有接口,随时可能变更。本项目适配于 2026-10-07 实测的接口。

免责声明

仅供个人学习 / 研究使用。自动化访问可能违反 Hark 的服务条款,使用风险自负。 本仓库不含任何账号或凭据。

许可

MIT —— 见 LICENSE。上游 / 原项目:WorkBuddy2API-Android(MIT)。

About

Hark (hark pro) -> local OpenAI/Anthropic-compatible API on Android. Pure Kotlin, no browser.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages