哈罗德
大声点! 哈罗德特工星
解放你的特工,在沙发上工作.
Harold是ACP代理代理 也是Android代理的应用体验 和你的探员一起跑 不管他们在哪里 不管是什么 都用哈罗德的应用程序和他们说话.
哈罗德经验
https://github.com/user-attachments/assets/d9eac0bd-94e9-4bd4-aeb6-fe6a8f76538e 页面存档备份,存于互联网档案馆
快速启动
-
安置哈罗德 无论你的探员在哪里.
要求数 阿宝。 。 。 .
bun install -g @codenamegary/harold
harold setup # enable your agents, pick your connection method
harold start # start the Harold proxy
harold pair # generate a code and show a QR code
-
为Android下载并安装了哈罗德应用程序.
-
启动应用程序,点击
pair从终端扫描QR代码.
连接到哈罗德
哈罗德是一个代理,你可以指 它就像其他的 http 服务器。 哈罗德只需要知道您在QR代码中嵌入它时设置的终点,尽管您也可以使用生成的代码手动对接. 你可以通过...
- 在运行 Harold 的 IP 上标注 DNS 记录
- 或分级
- 或 ngrok 语句
- 或者从你的哈罗德机器通过VPS反向隧道
- 或可信任的本地网络覆盖 plain HTTP(见下文)
#!/usr/bin/env bash
# Runs on your Harold host - reverse-SSH Harold to a VPS with a public IP and/or DNS record
set -euo pipefail
REMOTE_HOST="${PUBLIC_HOST_USERNAME:[email protected]}"
SSH_KEY="${PUBLIC_HOST_KEY:-$HOME/.ssh/your-hostname.com.key}"
LOCAL_PORT="${HAROLD_TUNNEL_LOCAL_PORT:-3847}"
REMOTE_PORT="${HAROLD_TUNNEL_REMOTE_PORT:-3847}"
STATUS_URL="http://127.0.0.1:${LOCAL_PORT}/v1/status"
PUBLIC_URL="${AGENT_TUNNEL_PUBLIC_URL:-https://your-hostname.com/v1/status}" # For embedding in pairing QR codes
if [[ ! -f "$SSH_KEY" ]]; then
echo "SSH key not found: $SSH_KEY" >&2
exit 1
fi
if ! curl -fsS --max-time 2 "$STATUS_URL" >/dev/null; then
echo "Harold is not reachable at $STATUS_URL" >&2
echo "Start Harold locally before opening the tunnel." >&2
exit 1
fi
echo "Tunneling ${REMOTE_HOST}:0.0.0.0:${REMOTE_PORT} -> 127.0.0.1:${LOCAL_PORT}"
echo "Public check: $PUBLIC_URL"
echo "Ctrl-C to stop."
echo
exec ssh \
-i "$SSH_KEY" \
-o BatchMode=yes \
-o ExitOnForwardFailure=yes \
-o ServerAliveInterval=30 \
-o ServerAliveCountMax=3 \
-N \
-R "0.0.0.0:${REMOTE_PORT}:127.0.0.1:${LOCAL_PORT}" \
"$REMOTE_HOST"
信任 HTTP 的本地网络
Harold默认为每个接口服务,所以同一网络上的电话可以 在不附加设置的情况下到达它 :
harold start
harold pair # lists remembered endpoints and this machine's addresses, prints the QR code
harold pair 记得你使用的终点. 在互动终端上
列出第一个、最近第一个使用 与该条目预选,
之后,每一个地址 在这个机器上 一个电话可以拨,标签
来源(历史来源或界面名称)。 选择终点
没有回答 GET /v1/status 解释为何并重开清单
输入自定义 URL 总是有一个选项。 提要载有:
手动输入的端点和代码,以及用于扫描的QR编码.
过 --url 以跳过终点提示.
Plain HTTP 以清晰文本发送设备证书和会话流量 。 用这个
只在你信任的网络上 对于公众访问,通过Tailscale(a)使用HTTPS
反向代理或隧道,并配对 harold pair --url https://your-endpoint。 。 。 .
哈罗德克利
> harold
Usage: harold [options] [command]
Hark! The Harold Agents Sing - Access your agents on Android from anywhere.
Options:
-V, --version output the version number
-h, --help display help for command
Commands:
start start the Harold daemon in the background
setup [options] configure agents, a workspace, and pairing
status show Harold status summary and live daemon state
stop stop the running Harold daemon
agent list, enable, disable, and probe agents
pair [options] pair a device with a QR code or a manual code
device manage paired devices
workspace open, clone, list, and remove workspace folders
logs [options] tail the Harold daemon log
工作空间
一个工作空间是哈罗德主机上一个项目文件夹的书签. 这不是一个
沙盒而不是存储位置。 任何现有的可读文件夹作品,以及
会话仍然在任意开始 cwd 你选择.
harold workspace add ~/sites/harold # already registered is not an error
harold workspace clone [email protected]:acme/widgets.git --into ~/sites
harold workspace list
harold workspace remove harold
workspace add 找到或创建通过犬科路径. workspace clone 创建一个
新文件夹在 --into,带有宿主git设置的克隆,然后注册.
使用 --folder-name 选择不同的文件夹名称和 --name 用于显示
名称。 删除工作区只删除书签;文件夹保留.
Android 应用程序
下载 harold-android-<version>.apk 从最近 哈罗德-和机器人-v* 发布 并打开手机。 Android 曾经要求允许从您的浏览器安装.
用Android SDK验证计算机上的APK:
sha256sum harold-android-<version>.apk
apksigner verify --print-certs harold-android-<version>.apk
从源头运行
要求数 阿宝克隆回波,然后...
bun install
bun run dev start
bun run dev 运行 CLI. 传它任何命令: bun run dev setup, (中文(简体) ),
bun run dev status, (中文(简体) ), bun run dev stop。 。 。 .
Harold API 为端口上的每个接口服务 3847。除此之外,所有路线 GET /v1/status 和配对索赔需要设备证书(Authorization: Bearer) (中文(简体) ). 给设备配对 harold pair 为了得到一个.
配置
| 变量 | 默认 | 含义 |
|---|---|---|
HAROLD_PORT | 3847 | 设备 API 端口 |
HAROLD_DATA_DIR | ~/.harold | 数据库、日志和运行时间设置 |
绑定地址不能配置:守护进程总是为每个接口服务,因此网络上的电话可以对接.