open-astravia

mcp
Security Audit
Pass
Health Pass
  • License — License: Apache-2.0
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Community trust — 24 GitHub stars
Code Pass
  • Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Pass
  • Permissions — No dangerous permissions requested

No AI report is available for this listing yet.

SUMMARY

astravia 是本地优先的开源 AI智能体,可以编码、连接数据70+数据库进行数据分析、自动化、应用设计等

README.md

Astravia

Astravia · 星轨

面向真实工作的开源桌面 AI Agent——本地优先、可扩展,由你掌控。

官网 Apache-2.0 许可 macOS、Windows 与 Linux

简体中文 · English · 下载


Astravia 把模型、项目文件、本机工具和可复用能力放进同一个桌面工作区。它适用于编码、文档、数据、研究、创意生产和可重复工作流,同时让工作继续发生在你选择的环境中。

它不只是聊天界面:Astravia 能理解工作区、在可见的权限边界内调用工具、交付真实文件,并保留可供检查的执行过程。

Astravia 桌面工作区

为什么选择 Astravia

对你意味着什么
本地优先的工作区 项目、会话、文件与执行过程留在你选择的环境中。
自带模型 通过 BYOK 连接受支持的 Provider、OpenAI 兼容端点或本地推理服务。
真实工具与产物 在同一条任务流中处理代码、文档、表格、媒体、命令和生成文件。
过程可检查 工具调用、计划、权限、进度、结果和恢复路径都有记录。
方法可复用 使用技能、MCP、插件、主题、知识库、批量任务和自动化持续积累能力。
开放的客户端栈 桌面端、CLI、SDK、插件系统、主题、移动端与 IM 网关都在本仓库开发。

从这里开始

我想要…… 从这里开始
使用桌面应用 下载 macOS、Windows 或 Linux 客户端,完成应用内首次设置。
理解产品能力 阅读下面的核心能力介绍。
开发扩展 跳转到 插件开发。
参与代码开发 阅读 QUICKSTART.zh-CN.md 与 CONTRIBUTING.zh-CN.md。

从源码运行

需要 Bun 1.3+ 与 Node.js 20+。

git clone [email protected]:maomaochong-ai/open-astravia.git
cd open-astravia
git switch dev
bun install
cd apps/desktop
bun run dev

开发应用默认使用 ~/.astravia-dev,不会改动正式安装版位于 ~/.astravia 的数据。仓库根目录的 bun run dev 只监听核心库,不会启动 Electron。完整环境准备与检查命令见 QUICKSTART.zh-CN.md。

可以用它做什么

  • 在项目和会话中工作。 把任务历史、文件、上下文、产物和执行详情放在一起。
  • 使用本机与外部工具。 运行命令、检查文件、连接 MCP 服务,并显式批准敏感操作。
  • 处理专业产物。 预览和处理源码、PDF、Office 文件、表格、图片、音视频、SVG 与生成式 UI。
  • 放大已经跑通的任务。 用批量任务处理多个目录,或把稳定流程交给自动化定时执行。
  • 复用组织知识。 建立本地知识库,安装可复用的技能和场景。
  • 离开电脑也能继续。 使用受支持的 IM 桥接、Webhook、通知、快捷输入和桌面原生集成。

核心能力

对话与工作区

消息流、工具调用、生成结果同屏可见;文件在应用内直接预览(PDF、Word、PPT、表格、图片、音视频、SVG);扫描版 PDF 离线 OCR。内置 coding-agent 可读写工程文件、运行命令、截图。

数据库工作台

内置 40+ 数据库连接(PostgreSQL、MySQL、SQLite、SQL Server、Oracle、Doris、OceanBase…),SQL 工作台多标签查询、历史记录、CSV/JSON 导出;AI 可在对话中直接查数;写操作分级授权,prod 连接默认只读。

批量任务 & 定时调度

一个 Prompt 对多目录批量执行;内置 Cron 调度,托盘后台运行,历史可查、可重试。

通知与远程控制

批量 / 定时任务完成或异常推送飞书、钉钉机器人(凭据本地加密);飞书 IM 遥控本机 Agent(Telegram、钉钉规划中)。

扩展生态

从 GitHub 仓库安装 Skill、MCP Server、插件与主题;本地文档加工成可检索知识库,全程不出本机。插件权限系统:每项能力必须声明权限,宿主单独授权、运行时校验。

UI 设计工作区

无限画布上的设计稿即真实可运行界面,共享色彩系统,可导出渲染图或只读分享包。

桌面集成

全局快捷键唤起快捷面板;macOS Appshot 手势截图 + 屏上文字交给 Agent;Node / Python 运行时配置;托盘常驻;electron-updater 自动更新;中英双语界面。

插件开发

Astravia 自身的设计画布、Git、图表、文件预览都是插件,同一套扩展点对第三方开放。插件用 Vite + Module Federation 构建成独立 bundle,宿主运行时按需加载、沙箱执行、权限校验。

能扩展什么

域 可用扩展点
界面 (ctx.ui) 全局悬浮面板、活动面板标签、文件预览器、消息卡片、工具调用插槽、快捷键、通知、文件浏览器工具栏与右键菜单
Agent (ctx.agent) 注册 JS 工具(JSON Schema 入参)、动态系统提示词 provider、Skill 目录注入、MCP Server 随插件声明、Continuation provider(会话尾自动追问)
宿主能力 文件读写 (ctx.fs)、命令执行 (ctx.command)、HTTP 请求 (ctx.network)、持久化存储 (ctx.storage)、设置页 (ctx.settings)、i18n (ctx.i18n)、官方 API(模型 / 提供商 / MCP / 批量 / 调度…)
权限系统 每项能力都必须在 plugin.json 的 permissions 中声明,宿主安装时弹窗让用户逐条授权,运行时再次校验

目录结构

my-plugin/
├── plugin.json          ← 必须,声明元数据、权限、Agent 贡献路径
├── package.json
├── vite.config.ts       ← 用 @astravia-org/plugin-vite 的 astraviaPluginFederation
├── src/
│   ├── index.tsx        ← 入口,导出 definePlugin({ activate })
│   └── style.css
├── locales/zh.json      ← 可选,i18n 文案
├── agent/
│   └── skills/          ← 可选,随插件打包的 Skill
├── mcp.json             ← 可选,随插件声明的 MCP Server
└── icon.png             ← 可选,列表展示用

入口代码

import { definePlugin } from "@astravia-org/plugin-sdk";

export default definePlugin({
  activate(ctx) {
    ctx.ui.registerActivityTab({ id: "my-tab", label: "我的面板", component: MyPanel });

    ctx.agent.registerTool({
      id: "greet",
      name: "greet_user",
      description: "向用户打招呼",
      parameters: { type: "object", properties: { name: { type: "string" } }, required: ["name"] },
      handler: async ({ trigger }) => `Hello, ${trigger.input.name}!`,
    });
  },

  deactivate() { /* 可选,卸载时清理 */ },
});

构建与安装

# package.json
{
  "scripts": { "build": "vite build" },
  "dependencies": { "@astravia-org/plugin-sdk": "latest" },
  "devDependencies": { "@astravia-org/plugin-vite": "latest", "vite": "^7" }
}

# vite.config.ts
import { astraviaPluginFederation } from "@astravia-org/plugin-vite";
export default defineConfig({ plugins: [astraviaPluginFederation({ name: "my_plugin", entry: "./src/index.tsx" })] });
bun install
bun run build           # 产物:dist/mf-manifest.json + dist/remoteEntry.js + dist/style.css
zip -r my-plugin.zip .  # 打包整个插件目录(含 plugin.json)

安装:在 Astravia 内「设置 → 插件 → 安装本地插件」选择 zip 即可。也可以把插件放到 GitHub Release,用仓库 URL 在应用内一键安装。

内置插件:astravia-ui-design、content-creation、plugin-workbench、git、image-gen、chart-renderer、office-viewer、media-viewer、svg-viewer、astravia-actions。

数据与构建模式

源码检出默认生成 lite 构建,不依赖托管后端:不要求账号、订阅、远程管理或托管市场。模型请求直达你配置的端点,凭据保存在本地凭据存储中。

本地优先不等于完全没有网络流量。模型 Provider、MCP、插件、Webhook、IM、更新源和可选遥测分别形成自己的数据边界。

仓库结构

本仓库是 Bun/TypeScript Monorepo,同时包含 Swift、Kotlin 与 Go 应用。依赖从应用指向可复用包,packages/* 不反向依赖 apps/*。

范围 职责
apps/desktop Electron 桌面宿主与渲染层
apps/cli-host Coding Agent 的 CLI 宿主
apps/docs-site 文档站
apps/mobile/client-apple Swift/SwiftUI 原生 iOS 客户端
apps/mobile/client-android Kotlin Multiplatform Android 客户端
apps/im-gateway Go 编写的 IM 旁路网关
packages/ai · packages/agent Provider 抽象与 Agent Loop
packages/coding-agent · packages/runtime-* 产品组合、运行时合同、工具、存储、MCP 与宿主适配
packages/plugins · packages/themes 扩展 SDK、内置扩展与主题

架构细节与公共集成合同见 docs/adr/。

开发与贡献

统一使用 Bun 和仓库脚本;不要在这个 Monorepo 中运行裸 bun test。

bun run check:quick              # 检查改动文件与架构边界
bun run check                    # 完整 lint、类型和架构守卫
bun run test:pkg <package-name>  # 定向包测试
bun run test:changed             # 运行当前 diff 影响的测试

Pull Request 发往 dev 分支。贡献地图、测试要求与评审门槛见 CONTRIBUTING.zh-CN.md。架构和 Agent 协作规则见 AGENTS.md。

问题和早期想法请发到 GitHub Discussions。安全漏洞请通过 GitHub Security Advisories 私下报告。

加入社群

扫码加入,交流使用经验、反馈问题、获取最新动态

QQ

QQ 群

QQ 官方群

日常交流 · 问题反馈

微信

微信群

微信官方群

版本更新 · 内测招募

致谢与许可

Astravia 建立在广泛的开源生态之上,包括 pi、Codex CLI、MCP、Electron、React、Bun、models.dev,以及 NOTICE 中列出的项目。完整第三方清单与原始版权声明以该文件为准。

本项目采用 Apache-2.0 许可。

Reviews (0)

No results found