快速上手
你需要 NeuroSquad 和 Node.js 18.17 或更高版本。不需要开发者账号;使用纯 HTML 模板时也不需要任何构建工具。
1. 创建卡片
npx @neurosquad/card-sdk create my-card # plain HTML + JS, no build step
npx @neurosquad/card-sdk create my-card --template react # React + Vite + TypeScript两个模板生成的是同一张可用的卡片:画布上的智能体及其实时状态、保存在卡片存储中的草稿区、一个输入和一个输出端口, 以及一个相连智能体可以调用的工具。先读懂它,再动手修改。
纯 HTML 模板(vanilla):
my-card/
neurosquad-card.json the manifest: name, size, permissions, settings, ports, tools
index.html the page loaded into the card
main.js the card's code
style.css
icon.png square PNG or WebP, 128 KB at most
vendor/ the SDK (card-sdk.js), the UI kit (ui.css), the mock host, the manifest schemaReact 模板:同样的清单文件和图标,src/ 中有 main.tsx、App.tsx 和 i18n.ts,以及已为卡片配置好的 Vite
(相对 URL、无内联脚本)。先运行 npm install;npm run build 会生成 dist/,应用加载的就是它。
2. 脱离应用预览
单独打开页面时,它会连接到一个模拟宿主,其中有示例智能体和一篇已连接的笔记,所以你可以在任何浏览器里调整外观:
npx serve . # plain template, then open http://localhost:3000
npm run dev # React template在浏览器控制台里,可以用 mockHost 驱动它:mockHost.setAgentStatus('a2', 'working')、
mockHost.setLanguage('ru')、mockHost.sendPortMessage('text', 'hello')。参见用模拟宿主测试。
3. 在 NeuroSquad 中实时运行
在 NeuroSquad 中:Settings → Custom cards → Developer mode。它允许本机上的 CLI 请求链接一个文件夹;
它只监听 127.0.0.1。
在卡片文件夹中运行 npx @neurosquad/card-sdk dev。应用会请你确认链接,然后显示与普通用户看到的相同的权限对话框。接受即可。
在画布上:+ → Custom card…,选择你的卡片(它带有 Dev 徽章)。
每次保存都会重新加载卡片。运行 dev 的终端会打印卡片日志——card.log.*、未捕获的错误和被拒绝的 Promise。
按 r 手动重新加载,按 q 退出。
使用 React 模板时,dev 还会替你运行 npm run watch,每次保存都会重新构建 dist/。传入 --no-build 可以改用你自己的监视进程。
开发者模式不能绕过授权:链接的文件夹获得的正是它的清单文件所声明的权限,并且要经过同样的对话框。 修改清单中的权限后,卡片会再次询问。
不用 CLI。 Settings → Custom cards → Link a folder… 也能链接文件夹——如果只是想试试别人以文件夹形式发给你的卡片,会很方便。
4. 像安装程序那样检查
npx @neurosquad/card-sdk validatevalidate 会运行应用自己的清单检查和安装程序的文件规则,对沙箱会拦截的内容(内联脚本、外部文件)发出警告,
并打印用户将看到的安装对话框。pack 更进一步,准确列出将被安装的文件,以及应用会记录的树哈希(tree hash)。
参见 CLI 参考。
5. 发布到 GitHub
把卡片文件夹推送到一个 GitHub 仓库——可以是独立仓库,也可以是更大仓库中的一个文件夹。发布就这么简单。有几点要做对:
neurosquad-card.json必须位于卡片文件夹的根目录。- 提交构建产物。 应用直接从仓库安装,从不执行构建。React 模板的
.gitignore特意没有忽略dist/。 - 给发布版打标签(
v1.0.0),别人就可以安装固定版本,或者跟随你的最新发布版。
更多内容见发布与更新。
6. 从 GitHub 安装
在 Settings → Custom cards → Install a card 中粘贴 your-name/my-card(仓库中 pomodoro 文件夹里的卡片用
your-name/my-cards/pomodoro,指定标签用 your-name/my-card@v1.0.0),然后点击 Install。
你的用户也是这样做的;参见安装社区卡片。
最小的卡片
不需要模板,三个文件就够:
{
"manifestVersion": 1,
"name": "hello-card",
"displayName": "Hello",
"version": "0.1.0",
"protocol": 1
}<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<script type="module" src="main.js"></script>
</head>
<body>
<h1 id="title">…</h1>
</body>
</html>// card-sdk.js is dist/card-sdk.js from the @neurosquad/card-sdk package, copied next to this file.
import { connect } from './card-sdk.js'
const card = await connect()
document.getElementById('title').textContent = `Hello from ${card.workspace.name}`
card.setStatus('Ready', { tone: 'success' })它不申请任何权限,所以只能在自己的方框里绘制、保存存储和设置、设置自己的标题栏——这已经是一张有用的卡片了。