Files

560 lines
25 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta
name="description"
content="GoodBuddy 是桌面 AI 助手,支持项目知识库、魔法笔记、远程消息通道和受控工具执行。"
/>
<meta name="theme-color" content="#f6f8fb" />
<title>GoodBuddy|桌面 AI 助手</title>
<link rel="icon" href="./assets/favicon.svg" type="image/svg+xml" />
<link rel="stylesheet" href="./styles.css" />
<script>
(() => {
try {
const savedTheme = localStorage.getItem("goodbuddy-site-theme");
const systemDark = window.matchMedia("(prefers-color-scheme: dark)").matches;
document.documentElement.dataset.theme =
savedTheme === "light" || savedTheme === "dark"
? savedTheme
: systemDark
? "dark"
: "light";
} catch {
document.documentElement.dataset.theme = "light";
}
})();
</script>
</head>
<body>
<a class="skip-link" href="#main-content">跳到主要内容</a>
<header class="site-header" data-site-header>
<div class="header-inner">
<a class="brand" href="#home" aria-label="GoodBuddy 首页">
<svg class="brand-mark" viewBox="0 0 40 40" aria-hidden="true">
<path d="M6 21a9 9 0 1 1 18 0v8H15a9 9 0 0 1-9-8Z" />
<path d="M16 21a9 9 0 1 1 18 0 9 9 0 0 1-18 0Z" />
<path d="M20 13V8M25 10l3-3M15 10l-3-3" />
</svg>
<span>GoodBuddy</span>
</a>
<button
class="icon-button menu-toggle"
type="button"
aria-label="打开导航"
aria-expanded="false"
aria-controls="site-navigation"
data-menu-toggle
>
<svg viewBox="0 0 24 24" aria-hidden="true">
<path d="M4 7h16M4 12h16M4 17h16" />
</svg>
</button>
<nav class="site-navigation" id="site-navigation" aria-label="主导航" data-navigation>
<a href="#features">功能</a>
<a href="#release">亮点</a>
<a href="#download">下载</a>
<a href="#security">安全</a>
</nav>
<div class="header-actions">
<button class="icon-button" type="button" aria-label="切换为深色主题" data-theme-toggle>
<svg class="theme-icon theme-icon--sun" viewBox="0 0 24 24" aria-hidden="true">
<circle cx="12" cy="12" r="4" />
<path d="M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4" />
</svg>
<svg class="theme-icon theme-icon--moon" viewBox="0 0 24 24" aria-hidden="true">
<path d="M20.4 14.6A8.5 8.5 0 0 1 9.4 3.6a8.5 8.5 0 1 0 11 11Z" />
</svg>
</button>
<a
class="button button--quiet header-github"
href="https://github.com/mesalogo/goodbuddy"
target="_blank"
rel="noreferrer"
>
GitHub
<span class="sr-only">(在新窗口打开)</span>
</a>
</div>
</div>
</header>
<main id="main-content">
<section class="hero section" id="home" aria-labelledby="hero-title">
<div class="section-inner hero-grid">
<div class="hero-copy">
<div class="eyebrow">
<span class="status-dot" aria-hidden="true"></span>
桌面 AI 助手
</div>
<h1 id="hero-title">在桌面上使用 AI<br /><span>工作过程看得见。</span></h1>
<p class="hero-lead">
GoodBuddy 可以连接模型、知识库和工具。知识按全局或项目管理,
工具执行前可以确认,运行记录随时可查。
</p>
<div class="hero-actions">
<a class="button button--primary" href="#features">查看功能</a>
<a
class="button button--secondary"
href="https://github.com/mesalogo/goodbuddy/releases/latest"
target="_blank"
rel="noreferrer"
data-release-link
>前往官方下载页<span class="sr-only">(在新窗口打开)</span></a>
</div>
<ul class="hero-facts" aria-label="产品特性概览">
<li>
<svg viewBox="0 0 20 20" aria-hidden="true"><path d="m5 10 3 3 7-7" /></svg>
支持 Windows / macOS / Linux
</li>
<li>
<svg viewBox="0 0 20 20" aria-hidden="true"><path d="m5 10 3 3 7-7" /></svg>
全局和项目知识分开管理
</li>
<li>
<svg viewBox="0 0 20 20" aria-hidden="true"><path d="m5 10 3 3 7-7" /></svg>
工具执行前可确认
</li>
</ul>
</div>
<div
class="product-stage"
role="img"
aria-label="GoodBuddy 桌面应用界面示意:在项目范围内对话、引用知识并审批工具调用"
>
<div class="stage-glow stage-glow--one"></div>
<div class="stage-glow stage-glow--two"></div>
<div class="app-window">
<div class="window-bar">
<div class="window-dots" aria-hidden="true"><span></span><span></span><span></span></div>
<div class="window-title">GoodBuddy</div>
<div class="window-status"><span></span> 本地工作区</div>
</div>
<div class="app-layout">
<aside class="app-sidebar" aria-hidden="true">
<div class="mini-brand">
<svg viewBox="0 0 40 40">
<path d="M6 21a9 9 0 1 1 18 0v8H15a9 9 0 0 1-9-8Z" />
<path d="M16 21a9 9 0 1 1 18 0 9 9 0 0 1-18 0Z" />
</svg>
</div>
<div class="side-item is-active"><span></span>对话</div>
<div class="side-item"><span></span>知识库</div>
<div class="side-item"><span></span>魔法笔记</div>
<div class="side-item"><span></span>智能心跳</div>
<div class="side-item"><span></span>任务与活动</div>
<div class="sidebar-spacer"></div>
<div class="side-item"><span></span>设置</div>
</aside>
<div class="app-content">
<div class="app-content-header">
<div>
<strong>产品官网维护</strong>
<span>项目:GoodBuddy 官网</span>
</div>
<div class="mode-pill">计划模式</div>
</div>
<div class="message-area">
<div class="message message--user">检查官网内容与下载入口是否需要更新。</div>
<div class="message message--assistant">
<div class="assistant-label">
<span class="assistant-avatar">G</span>
<strong>GoodBuddy</strong>
</div>
<p>我会先检查站点内容和发布页,不修改文件。</p>
<div class="tool-card">
<div class="tool-icon">
<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M4 6h16M4 12h10M4 18h7" /></svg>
</div>
<div><strong>读取项目知识</strong><span>范围:GoodBuddy 官网</span></div>
<span class="tool-state">已完成</span>
</div>
<div class="plan-lines" aria-hidden="true"><span></span><span></span><span></span></div>
</div>
</div>
<div class="composer">
<span>继续补充要求…</span>
<div class="composer-actions"><span>计划</span><b></b></div>
</div>
</div>
</div>
</div>
<div class="floating-card floating-card--approval">
<span class="floating-icon">
<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3 5 6v5c0 4.5 2.8 8.6 7 10 4.2-1.4 7-5.5 7-10V6l-7-3Z" /><path d="m9 12 2 2 4-4" /></svg>
</span>
<span><strong>执行前确认</strong><small>查看工具名称和影响</small></span>
</div>
<div class="floating-card floating-card--scope">
<span class="scope-dot"></span>
<span><strong>项目范围</strong><small>知识和任务按项目区分</small></span>
</div>
</div>
</div>
</section>
<section class="proof-strip" aria-label="核心设计原则">
<div class="section-inner proof-grid">
<div><strong>3 种</strong><span>问答 / 计划 / 执行模式</span></div>
<div><strong>2 层</strong><span>全局与项目知识范围</span></div>
<div><strong>可查看</strong><span>工具调用与活动记录</span></div>
<div><strong>6 组</strong><span>系统与架构组合</span></div>
</div>
</section>
<section class="section features-section" id="features" aria-labelledby="features-title">
<div class="section-inner">
<div class="section-heading">
<div>
<p class="kicker">主要功能</p>
<h2 id="features-title">GoodBuddy 可以做什么</h2>
</div>
<p>
管理对话和知识,运行任务,并在需要时调用经过确认的工具。
</p>
</div>
<div class="feature-grid">
<article class="feature-card feature-card--wide">
<div class="feature-icon">
<svg viewBox="0 0 24 24" aria-hidden="true">
<path d="M12 3 5 6v5c0 4.5 2.8 8.6 7 10 4.2-1.4 7-5.5 7-10V6l-7-3Z" />
<path d="M9 12h6M12 9v6" />
</svg>
</div>
<span class="feature-number">01</span>
<h3>Agent 运行模式</h3>
<p>问答和计划模式不执行工具。执行模式通过审批控制调用工具,并支持取消、超时和输出限制。</p>
<div class="mode-row" aria-label="三种工作模式">
<span>问答 <small>只读</small></span>
<span>计划 <small>只读</small></span>
<span class="is-accent">执行 <small>需审批</small></span>
</div>
</article>
<article class="feature-card">
<div class="feature-icon">
<svg viewBox="0 0 24 24" aria-hidden="true">
<path d="M4 6.5C4 5.1 5.1 4 6.5 4H10l2 2h5.5C18.9 6 20 7.1 20 8.5v9c0 1.4-1.1 2.5-2.5 2.5h-11A2.5 2.5 0 0 1 4 17.5v-11Z" />
<path d="M8 11h8M8 15h5" />
</svg>
</div>
<span class="feature-number">02</span>
<h3>知识库按范围管理</h3>
<p>全局知识和项目知识分开保存。搜索结果和引用会显示来源。</p>
</article>
<article class="feature-card">
<div class="feature-icon">
<svg viewBox="0 0 24 24" aria-hidden="true">
<path d="M4 13h3l2-6 4 12 2-6h5" />
<path d="M4 4h16v16H4z" />
</svg>
</div>
<span class="feature-number">03</span>
<h3>定时任务和运行记录</h3>
<p>可以创建周期计划,查看每次运行的状态、结果和活动记录。</p>
</article>
<article class="feature-card">
<div class="feature-icon">
<svg viewBox="0 0 24 24" aria-hidden="true">
<path d="M7 13.5 13.5 7a3.2 3.2 0 0 1 4.5 4.5l-8 8a5 5 0 1 1-7-7l8-8" />
</svg>
</div>
<span class="feature-number">04</span>
<h3>文档和图片</h3>
<p>单次最多添加 8 个附件,支持同时传入 5 张图片。</p>
</article>
<article class="feature-card">
<div class="feature-icon">
<svg viewBox="0 0 24 24" aria-hidden="true">
<path d="M4 5h16v14H4z" />
<path d="m4 16 5-5 3 3 2-2 6 6" />
<circle cx="15.5" cy="8.5" r="1.5" />
</svg>
</div>
<span class="feature-number">05</span>
<h3>生成图片</h3>
<p>支持 auto、low、medium、high 四档质量。生成结果会保存到本地。</p>
</article>
<article class="feature-card feature-card--wide feature-card--accent">
<div class="feature-icon">
<svg viewBox="0 0 24 24" aria-hidden="true">
<circle cx="12" cy="12" r="3" />
<path d="M12 3v3M12 18v3M3 12h3M18 12h3M5.6 5.6l2.1 2.1M16.3 16.3l2.1 2.1M18.4 5.6l-2.1 2.1M7.7 16.3l-2.1 2.1" />
</svg>
</div>
<span class="feature-number">06</span>
<h3>模型、MCP 与运行时</h3>
<p>模型连接、MCP 工具和运行时都在桌面端配置。API 密钥只保存在主进程。</p>
<div class="provider-pills" aria-label="支持的连接类型">
<span>模型提供商</span><span>MCP</span><span>OpenCode</span><span>Continue</span>
</div>
</article>
</div>
</div>
</section>
<section class="section release-section" id="release" aria-labelledby="release-title">
<div class="section-inner">
<div class="release-heading">
<div class="version-lockup" aria-hidden="true">
<span>HIGHLIGHTS</span>
<strong>NOW</strong>
</div>
<div>
<p class="kicker">近期新增</p>
<h2 id="release-title">笔记、消息通道和运行时改进</h2>
<p>下面这些功能已经包含在当前正式版本中。</p>
</div>
</div>
<ol class="release-list">
<li class="release-item">
<div class="release-index">01</div>
<div class="release-copy">
<div class="release-label">魔法笔记</div>
<h3>魔法笔记</h3>
<p>在本地管理笔记和待办,支持范围、筛选、富文本编辑和 AI 评论。</p>
</div>
<div class="release-visual route-visual" aria-hidden="true">
<span class="route-node route-node--main">笔记</span>
<span class="route-line route-line--one"></span>
<span class="route-line route-line--two"></span>
<span class="route-node route-node--sub-one">待办</span>
<span class="route-node route-node--sub-two">AI 评论</span>
</div>
</li>
<li class="release-item">
<div class="release-index">02</div>
<div class="release-copy">
<div class="release-label release-label--preview">远程通道</div>
<h3>微信、企业微信和钉钉</h3>
<p>每个消息通道使用独立会话和系统项目,并记录发送者范围、运行模式和活动。</p>
</div>
<div class="release-visual channel-visual" aria-label="渠道状态">
<span><b>钉钉</b><small>独立会话</small></span>
<span><b>企业微信</b><small>范围控制</small></span>
<span class="is-experimental"><b>微信 ClawBot</b><small>扫码连接</small></span>
</div>
</li>
<li class="release-item">
<div class="release-index">03</div>
<div class="release-copy">
<div class="release-label">安全媒体</div>
<h3>远程消息中的图片和文件</h3>
<p>微信私聊支持图片与文件,单条消息最多 4 个附件。回复不会自动发送工作区中的已有文件。</p>
</div>
<div class="release-visual attachment-visual" aria-hidden="true">
<div class="attachment-stack"><span></span><span></span><span></span></div>
<div><strong>4</strong><small>单条附件</small></div>
<div><strong>12MB</strong><small>合计上限</small></div>
</div>
</li>
<li class="release-item">
<div class="release-index">04</div>
<div class="release-copy">
<div class="release-label">Agent Runtime</div>
<h3>运行时与 Skills</h3>
<p>OpenCode 与 Continue 共用更一致的 Skills、系统消息和工具配置,并保留环境白名单、取消、超时和审批控制。</p>
</div>
<div class="release-visual quality-visual" aria-label="运行时能力">
<span>Skills</span><span>Tools</span><span>OpenCode</span><span class="is-selected">Continue</span>
</div>
</li>
</ol>
</div>
</section>
<section class="section download-section" id="download" aria-labelledby="download-title">
<div class="section-inner">
<div class="section-heading section-heading--center">
<div>
<p class="kicker">下载</p>
<h2 id="download-title">下载 GoodBuddy</h2>
</div>
<p>
最新 Release 提供经过校验的跨平台安装包与哈希清单。进入官方下载页,按系统与架构选择安装包。
</p>
</div>
<div class="download-grid">
<article class="download-card">
<div class="platform-icon">
<svg viewBox="0 0 24 24" aria-hidden="true">
<path d="m3 5 8-1v8H3V5Zm10-1.3L21 3v9h-8V3.7ZM3 14h8v8l-8-1v-7Zm10 0h8v9l-8-1v-8Z" />
</svg>
</div>
<div><h3>Windows</h3><p>x64 / arm64 · NSIS / 便携版</p></div>
<a
class="button button--download"
href="https://github.com/mesalogo/goodbuddy/releases/latest"
target="_blank"
rel="noreferrer"
data-release-link
>选择 Windows 安装包<span class="sr-only">(在新窗口打开)</span></a>
</article>
<article class="download-card">
<div class="platform-icon">
<svg viewBox="0 0 24 24" aria-hidden="true">
<path d="M16.8 12.7c0-2.7 2.2-4 2.3-4.1A5 5 0 0 0 15.2 6c-1.7-.2-3.2 1-4.1 1-.9 0-2.2-1-3.6-1-1.8 0-3.5 1.1-4.5 2.7-2 3.5-.5 8.7 1.4 11.5.9 1.4 2 2.8 3.5 2.7 1.4 0 1.9-.9 3.7-.9 1.7 0 2.2.9 3.7.9s2.5-1.4 3.4-2.7a10 10 0 0 0 1.6-3.3 4.6 4.6 0 0 1-3.5-4.2ZM14.1 4.3A4.7 4.7 0 0 0 15.2 1a4.8 4.8 0 0 0-3.1 1.6A4.4 4.4 0 0 0 11 5.8c1.2.1 2.3-.5 3.1-1.5Z" />
</svg>
</div>
<div><h3>macOS</h3><p>x64 / arm64 · DMG / ZIP</p></div>
<a
class="button button--download"
href="https://github.com/mesalogo/goodbuddy/releases/latest"
target="_blank"
rel="noreferrer"
data-release-link
>选择 macOS 安装包<span class="sr-only">(在新窗口打开)</span></a>
</article>
<article class="download-card">
<div class="platform-icon">
<svg viewBox="0 0 24 24" aria-hidden="true">
<path d="M12 3c-3 0-4.7 2.5-4.5 5.4-1.3 1.4-2 3.4-2 5.6 0 3.9 2.9 7 6.5 7s6.5-3.1 6.5-7c0-2.2-.7-4.2-2-5.6C16.7 5.5 15 3 12 3Z" />
<path d="M9.3 10.2h.1M14.6 10.2h.1M9.5 15c1.6 1.2 3.4 1.2 5 0M7 19l-2 2M17 19l2 2" />
</svg>
</div>
<div><h3>Linux</h3><p>x64 / arm64 · AppImage / DEB</p></div>
<a
class="button button--download"
href="https://github.com/mesalogo/goodbuddy/releases/latest"
target="_blank"
rel="noreferrer"
data-release-link
>选择 Linux 安装包<span class="sr-only">(在新窗口打开)</span></a>
</article>
</div>
<div class="release-notice" role="status">
<svg viewBox="0 0 24 24" aria-hidden="true">
<circle cx="12" cy="12" r="9" /><path d="M12 11v5M12 8h.01" />
</svg>
<div>
<strong>下载与校验</strong>
<span>下载入口始终指向最新正式 Release;安装前请按系统与架构选择文件,并核对 SHA-256 清单。</span>
</div>
</div>
</div>
</section>
<section class="section security-section" id="security" aria-labelledby="security-title">
<div class="section-inner security-grid">
<div class="security-intro">
<div class="security-shield" aria-hidden="true">
<svg viewBox="0 0 48 48">
<path d="M24 5 9 11v11c0 9.7 6 18.2 15 21 9-2.8 15-11.3 15-21V11L24 5Z" />
<path d="m17.5 24 4.5 4.5 9-10" />
</svg>
</div>
<p class="kicker">安全设计</p>
<h2 id="security-title">主要安全边界</h2>
<p>
渲染界面不能直接读取密钥或调用 Node。工具和子运行时通过主进程受控访问系统能力。
</p>
<a
class="text-link"
href="https://github.com/mesalogo/goodbuddy"
target="_blank"
rel="noreferrer"
>
在 GitHub 查看项目
<span aria-hidden="true"></span>
<span class="sr-only">(在新窗口打开)</span>
</a>
</div>
<div class="security-list">
<article>
<span class="security-number">01</span>
<div><h3>密钥仅存主进程</h3><p>API 密钥写入加密设置存储,不会暴露给渲染界面。</p></div>
</article>
<article>
<span class="security-number">02</span>
<div><h3>IPC 输入经过校验</h3><p>预加载层只暴露明确的方法。IPC 输入使用共享模式校验,并检查发送方。</p></div>
</article>
<article>
<span class="security-number">03</span>
<div><h3>子运行时受限</h3><p>OpenCode 与 Continue 使用环境白名单、沙箱检查和工具审批。</p></div>
</article>
<article>
<span class="security-number">04</span>
<div><h3>工具执行可追踪</h3><p>工具名称、状态、取消、超时和输出限制都会记录在活动中。</p></div>
</article>
</div>
</div>
</section>
<section class="section final-cta" aria-labelledby="cta-title">
<div class="section-inner">
<div class="cta-card">
<div class="cta-orbit" aria-hidden="true"><span></span><span></span></div>
<div>
<p class="kicker">下载</p>
<h2 id="cta-title">选择适合你系统的安装包</h2>
<p>发布页提供安装文件、便携版和 SHA-256 校验清单。</p>
</div>
<div class="cta-actions">
<a
class="button button--primary"
href="https://github.com/mesalogo/goodbuddy/releases/latest"
target="_blank"
rel="noreferrer"
data-release-link
>前往官方下载页<span class="sr-only">(在新窗口打开)</span></a>
<a
class="button button--secondary"
href="https://github.com/mesalogo/goodbuddy"
target="_blank"
rel="noreferrer"
>
查看 GitHub
<span class="sr-only">(在新窗口打开)</span>
</a>
</div>
</div>
</div>
</section>
</main>
<footer class="site-footer">
<div class="section-inner footer-inner">
<a class="brand brand--footer" href="#home" aria-label="返回 GoodBuddy 首页">
<svg class="brand-mark" viewBox="0 0 40 40" aria-hidden="true">
<path d="M6 21a9 9 0 1 1 18 0v8H15a9 9 0 0 1-9-8Z" />
<path d="M16 21a9 9 0 1 1 18 0 9 9 0 0 1-18 0Z" />
<path d="M20 13V8M25 10l3-3M15 10l-3-3" />
</svg>
<span>GoodBuddy</span>
</a>
<p>桌面 AI 助手与 Agent 工作空间。</p>
<div class="footer-links">
<a href="#features">功能</a>
<a href="#release">亮点</a>
<a href="#security">安全</a>
<a href="https://github.com/mesalogo/goodbuddy" target="_blank" rel="noreferrer">
GitHub<span class="sr-only">(在新窗口打开)</span>
</a>
</div>
<small>© <span data-current-year></span> GoodBuddy. 本站不使用第三方统计脚本。</small>
</div>
</footer>
<script src="./app.js"></script>
</body>
</html>