@alook/daemon

中文文档
0.1.65发布于 2026/11/07Apache-2.0ES Module构建来源已验证近 30 天下载 3145

外观代理守护进程——主机侧跑时间后端,处理管理器,证书代理,以及控制平面.

中文使用文档
文档目录18 节
  1. 守护进程生命周期命令
  2. 这个大主意
  3. 持久性交付模式(其核心)
  4. 安全边界运行时间(克洛德和法典)
  5. 进程内 SDK 运行时间 (Pi)
  6. 持续方向运行时间( ursor)
  7. 持续服务运行时间( OpenCode)
  8. 运行时间比较
  9. 版式
  10. 主机管弦乐(管理器 + 服务器)
  11. 全权证书(零信任隔离)
  12. 三个关键层次(以及每个层次的居住地点)
  13. 收件箱层( 新鲜度)
  14. 构建运行( R)
  15. 将守护进程指向本地下面的真实区域
  16. 用法草图
  17. 看着PII
  18. 用户自动化

@ alook/ 守护进程

Alook的主机守护进程:控制-平面连接,代理调度,证书, 诊断 和生命周期的管弦乐.

运行时执行位于可独立构建的 @alook/agent-driver 软件包下 agent-driver/该套件适应了克洛德代码,代码,光标, OpenCode 和 Pi 在一个公众背后 AgentSession 合同。 守护进程消耗 并且不讲供应商程序或SDK协议.

驱动软件包保持主机中立. 其CLI运输制造出一次发射 状态目录, 显示一个稳定 alook 命令通过 PATH编曲 由主机提供的明确环境层。 供应商适配器从不导入 守护进程或控制飞机代码.

证相. 这里的形状、协议、旗帜字符串和控制流 由研究生产代理-运行时守护进程如何驱动这些 CLI 生成 被重新表述为"干净而通俗的抽象". 这是原始代码,不是副本 任何供应商来源, 并携带没有特定平台胶水.


守护进程生命周期命令

网络机器工作表生成了完整的命令. 生产命令使用 内建的 Alook 端点; 本地开发命令包括明确的本地 URL :

npx --yes @alook/daemon@latest daemon start --machine-key '<cmt_pair_token>'

重新启动先前的配对机器而不旋转其证书:

npx --yes @alook/daemon@latest daemon start --id '<machine_id>'

仅与该精确机器生成的命令重接/旋转:

npx --yes @alook/daemon@latest daemon reconnect \
  --id '<machine_id>' --machine-key '<cmt_reconnect_token>'

重接先取替换所有权, 只停止保存匹配 PID,然后激活符号. 已证实的承诺前拒绝恢复前一个 发射记录。 如果收到承诺的答复,当地发射失败, 新保持的记录仍不上网,并随即收回 daemon start --id '<machine_id>'。网络出错、超时、 5xx 或其他 模糊的激活响应从不重新启动可能被取消的旧证书; 由于新的证书没有收到,在 用户界面和运行 daemon reconnect 再来一次 从不粘贴配对或机器证书 输入日志、错误报告或聊天.


这个大主意

守护进程创建 AgentDriverSdk,探测或打开选定的后端,以及 然后只与一个 AgentSession数字 :

  • start(message) 承认第一个命令.
  • send(message) 接受、队列或拒绝带有打入的收件的后继命令.
  • interrupt(...) 财务报告和审定财务报表 stop(...) 提供有限度的生命周期控制.
  • snapshot() 暴露逻辑状态而不泄露过程/SDK对象.
  • events 是常态化的同源流 AgentEvent 数值.
  • closed 完全解决一次 终端和主机清理的事实.

内部 @alook/agent-driver,后端适配器宣布其执行模式 使供应商产出正常化. LogicalAgentSession 拥有录取,FIFO队列, 安全地送货、订货、清理 内部 ProcessLane 财务报告和审定财务报表 SdkLane 主机使SDK运输器与在流程中的运输器相类似; 他们故意不是公共守护神原始人.


持久性交付模式(其核心)

当一个消息到达,会发生什么取决于运行时间的生命周期:

安全边界运行时间(克洛德和法典)

一个孩子的过程跨越许多个回合。 两个适配器都声明 lifetime: "session"· ; 他们的公共能力是: midTurnDelivery: "safe_boundary_queue"在工具使用过程中收到的信息, 压缩, 或审查由 LogicalAgentSession 并收到一个后 command_accepted 或者说 command_failed 活动。 守护进程没有执行 协议或队列.

对克劳德来说,输入通道是 溪流-json: 进程为 以 --input-format stream-json --output-format stream-json --include-partial-messages,每个消息是 NDJSON 线 {"type":"user","message":{"role":"user","content":[{"type":"text","text":…}]}}。 。 。 .

进程内 SDK 运行时间 (Pi)

皮宣布 in_process_sdk 运输和 midTurnDelivery: "steer"其车道代表迅速、引导、中止和处置 同时保留同样的收据、事件和终端合同.

持续方向运行时间( ursor)

光标保留一个 cursor-agent acp 进程和非加太会议 届会。 根命令开始 a session/prompt; 繁忙命令引导相同的 逻辑上通过并行的即时请求。 每个请求都有自己的 JSON-RPC id,而根收仍为稳定的终端所有人. 旧 答复不能解决当前问题。 中断发送 session/cancel 而不杀死过程.

持续服务运行时间( OpenCode)

OpenCode 开始每个逻辑会话一个经认证的,仅回放的服务. 实际的 CLI 主选择它的适配器: v1 保留 --pure 持久活动 重放; v2 使用其原生的 API, 坚持收件箱/ 信件, 以及新的闲置记录 在所有被接受的投入之后。 根提示和忙碌方向盘共享相同的服务 和供应商会议。 Live SSE处理权限和工具进度. 未知 主要或缺失的本地能力明显失败.


运行时间比较

运行时间生命周期运输/协议指导初步投入输出格式
克劳德持续届会流- json NDJSONsafe_boundary_queuestdin 用户信息行溪流-json
代码持续届会JSON-RPC 2.0 (英语:app-server --listen stdio://(中文(简体) )safe_boundary_queueinitialize → thread/start编号 :resumeJSON-RPC通知
毕持续届会@earendil-works/pi-coding-agentsteersession.prompt()SDK 回调
光标持续届会ACP JSON-RPC 2.0 (英语:cursor-agent acp(中文(简体) )steersession/promptsession/update + 相关迅速反应
打开代码持续届会认证的 HTTP + SSE (opencode serve; v1 添加 --pure(中文(简体) )steerCLI 主要会话提示 API本地康复+现场SSE

(精确发射旗帜在 agent-driver/src/adapters/<backend>/. ) (中文(简体) )


版式

agent-driver/
  src/
    contract.ts                  # public SDK, session, receipt, event, and result types
    sdk.ts                       # createAgentDriverSdk
    registry.ts                  # built-in ids and capabilities
    controller/
      logical-session.ts         # admission, queueing, turns, stop, cleanup
      process-host.ts            # internal child-process lane
      sdk-host.ts                # internal in-process SDK lane
    adapters/<backend>/          # vendor launch + normalization
    host/default-host.ts         # standalone host implementation
    internal/                    # adapter-only transport/config/process helpers
    testing/                     # public conformance fixtures
src/
  index.ts                       # daemon exports; re-exports the driver public API
  drivers/index.ts               # daemon runtime lookup/probe facade only
  logger.ts                      # structured daemon logging
  runtime/                       # manager liveness, notification, error helpers
  inbox/                         # unread projection and freshness policy
  manager/
    agentDriverHost.ts           # host resource/env/CLI preparation
    managerPolicy.ts             # pure scheduling reducer
    managerRuntime.ts            # applies effects through AgentSession
  server/                        # data/control-plane contracts and WebSockets
  daemon/createDaemon.ts         # runtime-agnostic daemon composition
  cli/                           # lifecycle CLI and proxy data-plane client
  credentials/                   # voucher broker and key-swapping proxy
scripts/
  daemon.ts                      # local daemon entry

主机管弦乐(管理器 + 服务器)

除了驾驶一个单跑时间,后端包括 主机侧 管弦乐可以运行代理端到端:

  • manager/ —— 说 AgentProcessManager 时间表进程。 A. 决 定 纯还原器managerPolicy.ts:单飞行单过程每剂,醒后/入睡, 消息队列 + 串联, 已停止检测 → spawn编号 :send编号 :stop编号 :terminate_stalled 效果); 薄的执行器(managerRuntime.ts将其应用于真正的会议 回馈运行时间事件 . AgentRouter 消耗控制平面(下方).
  • server/ ——代理 qq服务器边界, 拆分为两个共享的平面 一份合同(contract.ts:
    • 数据平面 (单位:千美元)ServerApi: 什么情况 alook CLI呼叫—— send 编号 : inboxPull 编号 : ack 编号 : read 编号 : listChannels,按路径样式处理 ChannelRef编号.
    • 控制平面 (单位:千美元)HostCommand + 键 HostControlChannel: 服务器 ~ 主机命令 (单位:千美元)agent:wake 编号 : agent:stop; 附加 bot:* 寿命周期框架). agent:wake 携带一个 无身体 UnreadNotice (频道+最新后台,无消息内容) — DAEMON (单位:千美元)AgentRouter编号 :AgentProcessManager),不是服务器,而是决定是否产出一个 进程,通知已运行的,或将通知合并到下一个回合. 服务器没有程序内固定设备 : wsControlServer.ts (服务器端)和 wsControlChannel.ts (主机端,可注射插座+) 指数后退重接+心跳) HostCommand 边框 一个真实的 WebSocket(ws://127.0.0.1 在本地 dev, 一个真实 ws-do URL 进入 (b) 生产。 一个真正的服务器连接是相同的 WsControlChannel 指针 在真实的 URL 中, 上游没有变化 .

tests/integration/daemon/control-plane.test.ts 窃听一个真实的 WsControlChannel 反对运行 ws-do dev 服务器进入一个完整的循环:种子一个服务器/bot/ 以人类拥有者的身份发布信息 并维护守护进程 控制通道收到结果 agent:wake HostCommand 那么,演戏 作为物剂(无CLI产出),在真实的证书链上回复 (转录) 凭证 代理 × 代理 × 代理 × 代理 × 代理 × 代理 ) 并称 复 答 回 可读 超过真正的HTTP。 有关如何运行, 请参看下方“ 在本地区域显示真实的守护进程 ” 测试用手进行.

全权证书(零信任隔离)

产出运行时间需求 有点 回调到服务器的证书, 但递递 它真正的 API 键意味着代理进程(以及它运行的任何工具)可以读取它, 不能被瞄准, 漏水迫使旋转. credentials/credentialProxy.ts 执行 凭单 模式取而代之——相同的形状是生产守护进程 使用 :

  1. 主机启动本地密钥抖取代理 127.0.0.1 (只回转).
  2. 每一次发射,a CredentialBroker 薄荷每枚发射凭单 (单位:千美元)vch_…(中文(简体) ) 输入0600文件。 给孩子 <PREFIX>_PROXY_URL + 键 <PREFIX>_PROXY_TOKEN_FILE + 其能力设置 从来没有真正的密钥。 。 。 .
  3. 孩子们的CLI呼叫代理 Authorization: Bearer vch_…。 。 。 .
  4. 代理验证凭证, 真实的交换 Bearer <hostApiKey>, (中文(简体) ), 邮票 X-Agent-Id 编号 : X-Client 编号 : X-Agent-Active-Capabilities和前进 向上游提供.

这个买的 证书隔离 (代理只持有凭单), 能力范围界定 (代理拒绝券盖外的终点), 财务报告和审定财务报表 可撤销性 (保证金是每次发射的,可单独收回;旋转) 泄露的凭单从来不碰真正的钥匙). 这是 仅限 证书路径 —— 说 cliTransport 需求 ctx.credentialProxy (一个运行中的经纪人+代理 URL)和 丢出没有它; 没有任何简单文字的回落 能够给特工一个真正的 键。 一切都是中性主机:真实的密钥、上游 URL、凭单前缀和 标题都来自主机通过 CredentialBrokerConfig。 。 。 .

src/credentials/credentialProxy.test.ts 包括互换、拒付凭单 (单位:千美元)invalid local agent proxy token),能力范围界定,以及针对 向上抛出.

三个关键层次(以及每个层次的居住地点)

制作守护进程 3个 证书等级,而不是两个等级——对 理解什么 hostApiKey 应:

  1. 机器主密钥 ——认证守护进程到服务器,并用于 薄荷 代理证书。 仅保存在守护进程内( 未坚持到 磁盘或密钥链。 在当前的守护进程中, 它被传递为一个进程 参数v (单位:千美元)--api-key …),所以任何本地进程都可以通过 ps aux。 。 。 . 缓解:从一个lev var,一个0600文件,或者从OS键链取而代之 (原始内容存档于2018-09-21). argv. 这个代理 从不转发主密钥。 。 。 .
  2. 代理驾驶员证书 ——服务器薄荷每剂1枚(可视同 当守护进程用主密钥询问时. 这就是代理商在上游的 互换和前进 属于 CredentialBrokerConfig.hostApiKey从主密钥中嵌入 实值 主机侧管弦乐 并且故意超出这一范围 后端 .
  3. vch_ 凭单 - 由 CredentialBroker 每一次发射,写给0600 文件,也是代理程序所见过的唯一证书.

收件箱层( 新鲜度)

信息如何到达代理和发送动作如何 门 :

  • inbox/projection.ts —— 说 projectAgentInboxSnapshot 桶待处理 按目标(频道/DM/线程)和项目分别输入 仅以元数据显示的摘要 [inbox notice: …] (计算,第一, 最近,发送者,旗帜。 没有尸体——特工拉出尸体 alook inbox pull。 。 。 .
  • inbox/stateMachine.ts —— 说 planAgentInboxSideEffect 是"别回答" 僵硬的上下文"的后卫. 向外行动前(send 编号 : task_claim 编号 : task_update它比较模型已经看到 seq 边界对待决 信件和返回 转发 (让它过去), 举行 (保持行动, 将最近几条未见的消息显示为上下文,以便首先调和: 这是"Freshness hold ~ 保存为草稿",您可以在留言时点击 忙碌的代理人),或 绕行 (解释性) continueAnyway) (中文(简体) ). 这是纯粹的功能 生产稳定 producerFactId; 条款编号 SMR-002 (假设)和 SMR-006 (持有的信封)保存完好.

构建运行( R)

这个项目使用 小时 (见《大会正式记录,第五十八届会议,补编第6号》) packageManager 页:1.

pnpm install
pnpm run typecheck           # tsc --noEmit (passes clean)
pnpm test                    # Vitest package suite, including its packed/runtime categories
pnpm run test:integration    # real infra: requires wrangler dev + ws-do dev + queue-worker dev (see below)

单位行为由 src/**/*.test.ts全面控制飞机和 信用链行为与真实的以下行为相关 tests/integration/daemon/ - 看这个 可执行的参考文献目录 网络( 实数) WsControlChannel 一个真正的WebSocket,真正的 enroll-agent/creditive-proxy HTTP呼叫,没有进程内快捷键).

将守护进程指向本地下面的真实区域

没有模拟服务器可以代表 src/web编号 :src/ws-do - 一个守护进程 总是跟真人说话 驾驶一个手在本地dev,运行 真实的服务器和行走真实的证书链(cmt_ 配对标志 + cmk_ 守护进程证书 crk_ 每名代理导出键 :

1号航站楼 — Web app + Control-plane DO:

pnpm --filter @alook/web dev      # http://localhost:3000
pnpm --filter @alook/ws-do dev    # ws://localhost:8789

2号航站楼——对+激活一台机器,然后用 结果 cmk_... 证书 :

# 1. As a signed-in user, create a pairing token:
curl -s -X POST http://localhost:3000/api/community/machines/pair \
  -H "Cookie: <session-cookie>" | tee /tmp/pair.json
# → { "tokenId": "cmt_…", "expiresAt": "…" }

# 2. Exchange it for a daemon credential:
curl -s -X POST http://localhost:3000/api/community/daemon/activate \
  -H "Authorization: Bearer $(jq -r .tokenId /tmp/pair.json)" \
  -H "content-type: application/json" \
  -d '{"hostname":"my-laptop","platform":"darwin","arch":"arm64"}'
# → { "credential": "cmk_…", "machineId": "cm_…", "expiresAt": null }

# 3. Start it detached (the default):
pnpm run daemon -- start --machine-key cmk_… \
  --server-url http://localhost:3000 \
  --ws-url ws://localhost:8789

# Keep it attached for local debugging:
pnpm run daemon -- start --foreground --machine-key cmk_… \
  --server-url http://localhost:3000 \
  --ws-url ws://localhost:8789

一个捆绑在这个机器上的机器人(通过社区UI/API)现在可以被唤醒了 在一条频道上发布一条信息,它是一个成员——真正的唤醒者路径 (单位:千美元)src/web → src/queue-worker → src/ws-do交付 agent:wake 超过 守护进程是真的 WsControlChannel。 。 。 .

pnpm --filter @alook/daemon build 发射自成一体的守护进程捆绑。 这个 已公布的柏油球包括运行时驱动器的执行,而 @alook/agent-driver 也可以为主机独立构建和发布 只需要逻辑的SDK.

用法草图

import { createAgentDriverSdk } from "@alook/agent-driver";

const sdk = createAgentDriverSdk();
const opened = await sdk.open({
  backend: "codex",
  launch: {
    workingDirectory: ".",
    instructions: { format: "markdown", content: "Be concise." },
    launchId: "launch-example",
  },
  config: {
    model: { kind: "default" },
    mode: "default",
  },
});
if (!opened.ok) throw new Error(opened.error.message);

const { session } = opened;
const eventsDone = (async () => {
  for await (const event of session.events) {
    if (event.type === "assistant_message_completed") console.log(event.text);
  }
})();

await session.start({ id: "command-1", kind: "user", text: "Inspect this repository." });
await session.send({ id: "command-2", kind: "user", text: "Now summarize the risks." });
await session.stop({ reason: "owner_request", forceAfterMs: 5_000 });
const result = await session.closed;
await eventsDone;
void result;

看着PII

守护进程在转发发送前, 以管道顺序过滤本地发送的 ALook 信件正文 。 每个机器人都有它自己的持续管道 <baseDir>/daemons/<machineId>/<botId>/pii/pipelines.json,只包含该机器人的插件源和配置。 它一次加载文件,并在内存中再用其配置并编译出过滤器;之后的发送不会重读JSON或者重新编译没有变化的过滤器. 成功的管理变革只取代了机器人的快照. 手动编辑文件需要重新启动守护进程 。 另一个bot的无效配置不能阻挡它. 附件和对云模型的要求在此过滤器外. 已启用的过滤器已关闭: 错误、 无效结果或执行限制 .

新鲜配置包含五个默认过滤器: 密钥, (中文(简体) ), 电子邮件地址, (中文(简体) ), 身份证号码, (中文(简体) ), 电话号码 财务报告和审定财务报表 银行卡键共运行先前的私钥,公认的API-键,JWT/Authorization和证书分配/连接-密码检查,保留其特定类别的替换标记. 已保存的管道保留已安装的过滤器、源、旗和删除;没有自动合并.

默认 身份证号码 过滤器覆盖16个国家和地区的选定身份、社会保障和个人税号。 模糊的数字格式需要文档标签。 见 支持的格式、检查和限制以前初始化的配置保留了已安装的规则源.

默认 电话号码 过滤器识别国际数字和电话标记的国家数字,使用被标注的Google编号元数据,以及现有的独立格式。 见 承认边界和来源归属。 。 。 .

在机器人会话内:

alook pii list
alook pii add --file ./company-terms.ts --description "Redacts internal project names"

TypeScript 文件默认导出一个同步纯转换返回 { text: string, triggered: boolean }数字 :

export default (text: string) => {
  let triggered = false;
  const output = text.replace(/Project Wren/g, () => {
    triggered = true;
    return "[INTERNAL_PROJECT]";
  });
  return { text: output, triggered };
};

布尔是明确的每个插件,包括当后期插件恢复文本时. 遗留字符串返回源仍然可以执行,每个节点输入/输出比较作为相容性估计;这不能报告不匹配。 成功发送包括 pii.triggeredFilters 仅在过滤器报告命中时,没有原始值。 见 证书格式、协议和接收限制。 。 。 .

插件没有提供文件系统、进程、环境、网络或模块导入能力。 它们运行时有内存和执行限制. 添加附件新过滤器,无法替换已有的过滤器。 CLI 没有禁用/ 删除操作 。 当守护进程在线时, 发送请求不是应用更改; 页面等待本地守护进程的结果 。 删除的默认在重启后保留被删除 。 规则可能错失敏感价值;在依赖管道之前先审查管道及其范围.

隐私游乐场通过Alook的服务器将测试文本转发给守护进程,并返回所选择的管道输出. 它使用相同的跑道并检查显示的配置修订. 测试输入和输出是短暂的:它们不存储在配置,聊天历史,重放队列或身体日志中. 没有发送聊天消息或模式请求 。 输入和输出必须每个符合1024 UTF-8字节;失败的过滤器返回安全错误而不是部分输出.

用户自动化

在用户设置中创建访问码 → 自动化 。 选择写入权限( E)创建 bots, (中文(简体) ), 创建服务器, (中文(简体) ), 邀请朋友访问服务器, (中文(简体) ), 发送信件),过期,以及每次许可的费率. 读取权限( E)列表机, (中文(简体) ), 列表朋友, (中文(简体) ), 列表服务器) 启动并可以关闭。 出现时保存完整代码:只返回一次 。 编辑名称、权限或费率保留了过期;明确保留了新的失效期再次开始。 删除一个代码拒绝了后续的请求.

use 运行独立于守护进程连接或 Look bot 会话。 它调用通过访问码认证的专用自动化API;普通客户端和bot API保留其原始认证,不消耗自动化配额. 设定 ALOOK_ACCESS_CODE 或通过 --access-code-file <path> 在资源命令之前。 保持文件的隐私。 不要将代码放入命令参数或 URL .

npx @alook/daemon use bot --create '{"name":"Helper","machineId":"mac1","backendId":"codex","model":"gpt-6"}'
npx @alook/daemon use server --create '{"name":"demo","description":"Team work"}'
npx @alook/daemon use server --invite '{"server":"demo#0042","friend":"alice#0042"}'
npx @alook/daemon use machine --list
npx @alook/daemon use friend --list
npx @alook/daemon use server --list
npx @alook/daemon use message --send --target '/demo#0042/general' --as me --file './message.txt'
npx @alook/daemon use message --send --target '/.dm/alice#0042' --as '@Helper#0042' --file './message.txt'

运行 npx @alook/daemon use expire 以立即过期提供的访问代码。 它不需要额外许可或剩余配额,只影响该代码。 后来的请求,包括一再到期的请求,均被拒绝。 过期的代码留下活动列表;他们的记录仍然被存储. 返回自动化会刷新列表 .

这些是实例。 使用由代码用户拥有的现有机器ID,可用的后端,以及被支持的模型. 可选的机器人字段是 description 财务报告和审定财务报表 reasoningEffort. Bot Creat 保持与网络形式相同的机器准备状态,模型和计划检查. 代码直接授予每个选定的动作 。 机器,朋友和服务器列出每个需要自己的读取权限;没有其他账户动作. 创建服务器不会添加 bots .

邀请命令将正常的服务器邀请链接发送给被DM接受的朋友;它不会强迫这个人加入. 它不接受任意的信息内容。 来电者必须是服务器的成员 服务器和好友参数使用由列表命令返回的全名#NNNN手柄.

message --send 需要默认关闭 message.send 写许可. 它发送UTF-8文件内容,保存行折,而不是附加文件或读取stdin. --as me 选择代码所有者; --as @name#NNNN 选择同一人类拥有的合格机器人。 其他身份被拒绝。 通过现有发送功能解决选定发送者的目标回放和权限. Bot 未读对齐, CAS 和重复检查仍然保留; 此命令不拉出其收件箱 。 独立访问码路径不执行bot认证代理本地PII过滤器.

读取响应是故意小的:机器返回id/name/status/后端(机器没有名称#NNN手柄);朋友返回名/handle/is my bot;服务器返回名/handle/通道. 自动化 API 在返回数据之前应用了这个预测.

每个命令返回一个JSON行,例如:

{"success":{"bot":{"id":"b1","handle":"Helper#0042"}}}
{"success":{"server":{"id":"s1","handle":"demo#0042","url":"https://alook.ai/c/channels/s1"}}}

一个代码的7权限 单独计算。 收费标准使用前一个小时或24小时,每个代码有64/小时的上限,甚至允许一天的收费标准. 受限方所接受的有效认证请求即使随后商业验证或创建失败,也会消耗请求. 无效的基本输入和超限请求不消耗另一个请求. 政策编辑保存了近代历史. 一个被拒绝的请求返回一个错误; HTTP 429 包含一个重试间隔 .

写 POST 发送一次 。 如果连接失败, 创建、 邀请或信件可能已经成功; 在再次尝试之前检查 A look . use 永远不会自动重复写请求.

use server --list 包括每个服务器参与的顶级 channels,与 name, (中文(简体) ), type (单位:千美元)text 或者说 forum)和犬科动物 ref它使用 server.read:公共频道跟随服务器成员;私人频道要求代码拥有者的创建者或访问成员. 线索和信件不返回 。 没有可见顶级频道的服务器保持空 channels 阵列.

仅供地方发展之用,通过 use --server-url http://localhost:<port> … 或设置 ALOOK_SERVER_URL。远程起源需要 HTTPS . use 不跟随 HTTP 重定向与访问代码.

版本与发布记录

@alook/daemon 共发布 74 个版本,首次发布于 2026/07/15;过去 12 个月发布了 74 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.1.65latest2026/11/07今天
0.1.642026/11/052 天前
0.1.632026/11/025 天前
0.1.622026/10/317 天前
0.1.612026/10/308 天前
0.1.602026/10/2711 天前

关于 @alook/daemon 的常见问题

@alook/daemon 是什么?

外观代理守护进程——主机侧跑时间后端,处理管理器,证书代理,以及控制平面.

如何安装 @alook/daemon?

在项目目录运行 npm install @alook/daemon,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 alook-daemon,可以用 npx alook-daemon 直接运行。

@alook/daemon 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/alook__daemon 是否存在。

@alook/daemon 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@alook/daemon 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=20.9。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@alook/daemon 可以商用吗?

@alook/daemon 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@alook/daemon 的下载量有多少?

根据 npm 官方下载统计,@alook/daemon 在 2026/10/06 – 2026/11/04 这 30 天内被下载 3,145 次,日均约 105 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@alook/daemon 还在维护吗?

最新版本 0.1.65 发布于 2026/11/07(今天);至今共发布 74 个版本,其中过去 12 个月发布了 74 个;首次发布于 2026/07/15。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。