@appduct/web

中文文档
0.16.0发布于 2026/10/22MITTypeScriptES Module构建来源已验证近 30 天下载 6591

Web SDK for Appduct: register tools an agent, test or terminal can call in your running web app.

原始使用文档
文档目录6 节
  1. Requirements
  2. Getting started
  3. Things to know
  4. Release builds
  5. Learn more
  6. Made with ❤️ at Callstack

Appduct by Callstack. Your app is an MCP server now: your agent calls its functions over MCP, on iOS, Android, React Native, Flutter and web.

Appduct for Web

Call functions inside your running web page from a terminal, a test runner or an AI agent. Register tools with @appduct/web; only the tools you register are reachable. Works with any framework or plain JavaScript.

Requirements

  • A browser on the same computer as the Appduct CLI.
  • A local development page, such as http://localhost:5173/. For HTTPS pages, check the browser and transport guide.
  • The appduct CLI: npm install -g appduct (Node 20 or newer).

Getting started

Install the SDK:

npm install @appduct/web

Register a tool in your page's startup code:

import { registerTool } from "@appduct/web";

registerTool({
  name: "seed_cart",
  description: "Fill the cart with test items.",
  inputSchema: {
    type: "object",
    properties: { items: { type: "number" } },
    required: ["items"],
  },
  handler: async ({ items }) => ({ added: items }),
});

Run your development server, then connect the page using its URL:

appduct sessions link --open web http://localhost:5173/

Open the URL the CLI prints in your browser, then:

appduct tools ls
appduct tools call seed_cart --input '{"items":3}'

The tool returns {"added":3}.

Things to know

  • Reloads resume the session; new tabs don't. The page removes the connection link from its address bar after claiming it.
  • Raw schemas don't validate arguments. Check inputs in the handler, or use a supported schema library.
  • React has a hook entry. Import useAppductTool from @appduct/web/react to register a tool while a component is mounted.
  • An agent can connect without reloading. appduct_connect returns a script it can run in the page. DevTools and Playwright connections are covered in Drive a web page.
  • Check the build if nothing connects. The default import needs your bundler's development condition. Otherwise it uses an inert entry; see Web setup.

Release builds

The default entry is inert outside the development export condition: it registers nothing, opens no connection and doesn't define window.__APPDUCT__. To include Appduct in a staging build, import the enabled entry:

import { registerTool } from "@appduct/web/enabled";

Use it only in builds you control. Web pages don't pin the daemon's key; review Web security, including allowed origins, before enabling a hosted page. See Build variants.

Learn more

Made with ❤️ at Callstack

appduct is an open source project and will always remain free to use. If you think it's cool, please star it 🌟. Callstack is a group of React and React Native geeks, contact us at [email protected] if you need any help with these or just want to say hi!

Like the project? ⚛️ Join the team who does amazing stuff for clients and drives React Native Open Source! 🔥

版本与发布记录

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

版本发布日期距今
0.16.0latest2026/10/2217 天前
0.15.12026/10/1623 天前
0.15.02026/10/1226 天前
0.14.02026/10/1226 天前
0.0.0-stage2026/10/1226 天前

关于 @appduct/web 的常见问题

@appduct/web 是什么?

Web SDK for Appduct: register tools an agent, test or terminal can call in your running web app.

如何安装 @appduct/web?

在项目目录运行 npm install @appduct/web,或使用 pnpm add / yarn add / bun add。

@appduct/web 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@appduct/web 支持 ESM 还是 CommonJS?

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

@appduct/web 可以商用吗?

@appduct/web 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@appduct/web 的下载量有多少?

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

@appduct/web 还在维护吗?

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