关于 Fjord
Fjord 是面向团队和 AI Agent 的本地优先项目管理桌面应用与命令行工具,将看板、笔记、文件和项目数据存入本机 SQLite。它提供 MCP 服务、Git 工作流和活动日志,让成员与 Agent 协同处理项目并追踪变更来源。
主要功能
- 01本机 SQLite 项目存储
- 02看板、任务与子任务
- 03Markdown 笔记、文件与搜索
- 04GitHub 和 Azure DevOps 工作流
- 05命令行与 28 个 MCP 工具
- 06活动日志与实时更新
适用场景
- 01在本机组织项目和任务看板
- 02结合 Git 分支与拉取请求跟踪工作
- 03将项目笔记关联到任务
- 04让 AI Agent 更新任务并记录操作者
MCP 相关
`fjord mcp` 向 MCP 客户端提供 28 个工具,允许 Agent 创建、编辑、移动和归档项目条目。变更会标注操作者;Agent 不能永久删除条目。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Fjord 将项目、看板、文件和笔记保存在本机的一个 SQLite 数据库中。无需账号,无需云端,也没有遥测。它是一款轻量级原生桌面应用(Tauri)、可编写脚本的命令行工具,以及一个 MCP 服务——让你和 AI 助手能够在同一项目中协作,并随时查看是谁做了什么。
功能
- 项目与看板 — 拖放任务,或按
H/L移动任务。重命名、重新着色、调整顺序和添加列,并可将一列或多列标记为完成列(例如,已解决和已完成)。右键点击项目即可更改其图标和颜色。 - 任务 — 支持 Markdown 描述、优先级、截止日期、逾期警告,以及归档和恢复。可将任务及其子任务和文件移至其他项目,也可将任务弹出到独立窗口,放在看板旁边或另一台显示器上。“概览”会列出所有项目中本周到期的任务,并优先显示逾期任务。
- 站会和等待你处理(测试版) — 在站会日,“概览”会为一个项目起草站会内容(已完成、进行中、你的 PR、提及你的内容),供你复制为文本;还会列出等待你审查或检查失败的拉取请求。两者默认均关闭;可在 设置 → 概览 中开启或关闭,每个概览板块都可以单独切换。
- 文件 — 将文件拖到窗口中,即可附加到项目或任务。文件以内容寻址方式存储(自动去重),并支持图片预览。
- 主题 — 内置五种主题(Fjord Dark/Light、Nord、Solarized Light、High Contrast),可跟随操作系统并分别选择浅色/深色主题,也可实时预览并创建自己的主题:设置颜色、文字大小、圆角和密度;还能将主题分享为 JSON。按
Space T循环切换主题。 - 待处理 — 将任务标记为正在等待他人处理,例如等待客户端回复(按
w、右键点击或使用任务面板)。任务仍保留在原列中,并显示“待处理 3d”徽标;可以筛选待处理任务;“概览”会按等待时间从长到短列出任务,站会中也会将其显示为阻塞事项。Azure Boards 中的任务会与其工作项双向同步状态:在 Azure 中将工作项设为 Pending,Fjord 中的任务也会变为待处理;在 Fjord 中将任务设为待处理,也会同步到 Azure(清除待处理状态时同样如此)。 - 子任务 — 将任务拆分为一级子任务,分别设置状态、优先级和分支;也可将现有任务设为另一个任务的子任务(或取消关联)。卡片显示进度(2/5);任务面板列出子任务,支持勾选完成、拖动排序,并可按
A添加子任务。 - Notespace — Obsidian 风格的 Markdown 笔记,可放在项目内或独立存放,支持文件夹和子文件夹(将笔记拖到文件夹中,按名称或日期排序),并支持置顶和锁定为只读。使用
[[Project]]、[[#12]](任务)或[[Another note]]链接任意内容——输入[[可自动补全——并可在任务、项目和笔记中查看反向链接(“提及于”)。笔记和任务描述中支持渲染表格、任务列表和 Mermaid 图表;网页链接会在浏览器中打开。 - 全文搜索 — 搜索任务、笔记和文件名(
Space f)。 - 键盘优先 — 提供带 which-key 弹出菜单的引导键、看板上的 Vim 操作、
Ctrl+K命令面板,并且所有按键绑定都可配置。所有操作也都可以用鼠标完成。 - Git、GitHub 和 Azure DevOps — 将项目关联到代码仓库,从任意任务创建符合约定命名规则的分支(按
B,例如feat/12-add-login),或关联现有分支;查看带 CI 状态的拉取请求,从任务创建 PR,并让已合并的 PR 自动将任务移至已完成列。 - Azure Boards 导入 — 分配给你的工作项会作为任务显示在你选择的项目中,状态映射到对应列;子项作为子任务导入,附件和屏幕截图也会一并导入,讨论内容可在任务中查看。可选功能(测试版):将故事分析的验收标准和风险发送回工作项,并回复其中的讨论。有人 @提及你的工作项也会显示在“概览”中。
- VS Code 扩展 — Fjord for VS Code 可在代码旁显示看板,并在状态栏显示当前分支对应的任务。参见 VS Code。
- 支持 AI Agent —
fjord mcp向 Claude Code、Cursor 等 MCP 客户端提供 28 个工具;Agent Skill 会教 Agent 如何使用这些工具。Agent 可以创建、编辑、移动和归档内容,但不能彻底删除;每项更改都会标记其作者。 - 活动日志 — 记录更改内容、时间及操作人(你或 Agent)。
- 实时更新 — 来自 CLI 或 Agent 的更改会在一两秒内显示在已打开的应用中。
- 英语和挪威语 — 默认使用英语;添加一种语言只需一个文件。
- 自动更新 — 在应用内安装经过签名的更新;“设置”会显示已安装的版本。
![]() | ![]() |
![]() | ![]() |
![]() | ![]() |
安装
Fjord 优先支持 Linux:它是在 Linux 上开发并日常使用的。Windows 和 macOS 版本使用相同的代码构建,并在每个拉取请求的 CI 中进行测试。
下载
从 Releases 下载适用于你系统的安装程序:
| 系统 | 文件 |
|---|---|
| Linux | .AppImage(任何发行版)、.deb(Debian/Ubuntu)、.rpm(Fedora/openSUSE) |
| Windows 10/11 | .msi 或 -setup.exe |
| macOS | .dmg(Apple Silicon 或 Intel) |
在 macOS 上(以及在 Linux 上使用 CLI 时),你也可以使用 Homebrew:
brew install --cask jhtjernsmo/fjord/fjord # the app
brew install jhtjernsmo/fjord/fjord-cli # the `fjord` command-line tool
CLI 单独提供,文件名为 fjord-cli-<platform>。从 0.2.9 起,macOS 应用已使用 Apple Developer ID 签名并经过公证,因此可以正常打开。Windows 版本尚未进行代码签名,可能会显示 SmartScreen 警告(更多信息 → 仍要运行)。
从源代码构建
要求: Rust(稳定版)、Node.js 20+。Linux 还需要 WebKitGTK 4.1;Windows 使用内置的 WebView2,macOS 需要 Xcode 命令行工具。
# Arch
sudo pacman -S --needed webkit2gtk-4.1 base-devel
# Debian / Ubuntu
sudo apt install libwebkit2gtk-4.1-dev build-essential libssl-dev librsvg2-dev
# Fedora
sudo dnf install webkit2gtk4.1-devel openssl-devel librsvg2-devel
git clone https://github.com/jhtjernsmo/fjord.git
cd fjord
npm --prefix ui install
npx --prefix ui tauri build # installers for your OS in target/release/bundle
./target/release/fjord-app # run it
cargo install --path crates/fjord-cli # optional: puts `fjord` on your PATH
如需启用热重载进行开发:npx --prefix ui tauri dev。
更新
从 0.2.1 起,Fjord 会在启动时检查 GitHub Releases,并提供更新并重启选项(适用于 Windows、macOS 和 Linux AppImage;.deb/.rpm 通过包管理器更新)。更新在安装前会进行签名和验证;可在设置中关闭检查。设置 → 更新会显示已安装的版本,并提供立即检查按钮。0.2.1 之前的版本没有更新程序,因此需要手动安装一次最新版本。
键盘

在应用中按 ? 查看所有快捷键。按下领航键(Space)并稍等片刻,即可查看接下来的按键。
| 按键 | 操作 | 按键 | 操作 |
|---|---|---|---|
Ctrl+K | 命令面板 | h j k l | 在看板中移动 |
Space p | 切换项目 | H / L | 将任务移至上一列/下一列 |
Space t | 新建任务 | J / K | 将任务上移/下移 |
Space f | 搜索所有内容 | Enter | 打开任务 |
Space n | 新建项目 | o | 在此列中新建任务 |
Space b o F a A | 看板、笔记、文件、动态、归档 | x | 切换完成状态 |
Space , | 设置 | d d | 归档任务 |
Space L | 切换语言 | p | 循环切换优先级 |
Space N | Notespace | / | 筛选看板 |
Space g | Git 选项卡 | B | 为任务创建分支 |
Space r | 同步拉取请求 | a | 为任务添加子任务 |
Space i | 从 Azure Boards 导入 | S | 显示或隐藏子任务 |
Space T | 循环切换主题 | y | 复制任务引用([[#12]]) |
w | 切换待处理状态(等待客户端处理) | ||
Space ? | 报告错误 | g g / G | 第一个/最后一个任务 |
Esc | 关闭 | Delete | 删除任务 |
在概览页面中:按 j / k 浏览到期任务、提及和项目,按 Enter 打开,按 a 将提及添加为任务,按 x 忽略提及。按 Space G 为当前项目创建 GitHub 仓库。按 Ctrl+B 将侧边栏折叠为图标,类似 VS Code。
在已打开的任务中:按 [ / ] 将其移至上一列/下一列,按 e 编辑,按 A 添加子任务,按 B 创建分支,按 L 关联现有分支,按 P 打开拉取请求,按 m 将其移至其他项目,按 o 将其弹出到独立窗口,按 N 将其设为另一任务的子任务(或重新设为普通任务)。
在 macOS 上,Ctrl 快捷键改用 ⌘。可在 keymap.json 中重新映射任何按键(其所在位置请参见数据):
{
"leader": "space",
"bindings": {
"task.archive": "D",
"search.open": "<leader>/"
}
}
操作 ID 列在 ui/src/keymap.ts 中。
命令行
fjord project add "Bokost" --icon '$'
fjord task add bokost "Fix push notifications" -p 3 --due 2026-10-10
fjord column add bokost Review
fjord task move 1 review
fjord task done 1
fjord task nest 3 1 # make #3 a subtask of #1 (unnest to undo)
fjord project show bokost # board in the terminal
fjord search push
fjord log bokost # activity
fjord --json project ls # JSON for scripts
运行 fjord --help 查看所有内容。更改会记录操作者:--actor、$FJORD_ACTOR 或 $USER。
Git 和 GitHub
在 Git 选项卡中将项目关联到仓库(或运行 fjord git link <project> <path>)。还没有仓库?创建项目时勾选 Also create a repository on GitHub,或使用 Git 选项卡:Fjord 会一步完成创建(可设为私有或公开,可创建在你的账号或组织下,并可选择添加 README、.gitignore 和许可证)、克隆和关联。没有远程仓库的本地仓库也可以用同样的方式发布。如果你尚未登录 GitHub,可以直接在此处登录。
项目关联后,Fjord 会:
- 为任务创建名称符合惯例的分支,例如
fix/12-fix-push-notifications。在任务中选择类型(feat、fix、chore、docs、refactor、test、perf、ci、hotfix),或让 Fjord 自动判断:类似错误的任务和 Azure Bug 使用fix,其他任务使用feat。任务会移至第二列; - 或将任务关联到已有分支。多个任务可以共用一个分支,该分支的拉取请求会显示在所有关联任务上;
- 显示分支、近期提交以及带 CI 状态的 GitHub 拉取请求;
- 根据分支名称将拉取请求关联到任务,并可直接从任务创建拉取请求(标题遵循分支类型,例如
feat: Add login,描述则取自任务); - 在任务所在分支中,通过
Space e在你的编辑器或 IDE 中打开仓库(支持 VS Code、Cursor、JetBrains IDE、Visual Studio、Zed、Sublime,或自定义命令;可在 Settings → Integrations 中设置); - 拉取请求合并后(执行 Sync 时),将任务(或该分支上的所有任务)移至已完成状态,除非你关闭自动移动功能。
如果 GitHub 或 Azure DevOps 拒绝访问,Git 选项卡会显示相应平台给出的说明,例如组织限制了 OAuth 应用,或要求先通过 SSO 审批。
Git 通过你已安装的 git 运行,因此会使用你的配置、钩子和凭据。GitHub 访问权限(私有仓库和创建 PR 所需)按以下顺序获取:GITHUB_TOKEN/GH_TOKEN、在设置中通过浏览器登录(OAuth 设备流)或粘贴个人访问令牌来使用 GitHub 登录,或者运行 gh auth login。连接的令牌会通过 GitHub 验证,并保存在操作系统凭据存储中(Windows Credential Manager、macOS Keychain、Linux 上的 Secret Service),绝不会存入 Fjord 的数据库或文件。读取公开仓库无需令牌。
Azure DevOps(测试版)。 dev.azure.com(以及较早的 visualstudio.com URL)上的仓库会以相同方式检测,并提供相同功能:显示管道状态的拉取请求、每个任务使用一个分支、从任务创建 PR,以及 PR 完成后将任务移至已完成。身份验证可通过 AZURE_DEVOPS_EXT_PAT、在设置 → Azure DevOps中按组织配置的个人访问令牌(范围:Code Read & Write、Build Read;保存在操作系统凭据存储中),或 Azure CLI 完成:在设置中添加组织但不提供令牌,Fjord 会使用 az login。
Azure Boards 导入(测试版)。 可将分配给你的工作项导入选定的 Fjord 项目(启动时及每 10 分钟导入一次,不会重复)。每个工作项会进入与其 Azure 状态同名的列(Active 会回退到你的进行中列,New 会进入第一列),子项会变成子任务,也会包含过去 30 天内完成的项目(可配置),并通过通知告知你新增或变更的内容。任务面板会显示工作项讨论。AI Agent 可以通过 MCP 服务(import_azure、list_new_imports、mark_analyzed)分析新项目。设置方法、现成的分流提示词以及如何安排任务:docs/azure-boards-triage.md。
待处理。 如果工作项处于设置 → 集成 → 待处理状态中指定的状态(默认为 Pending),它在 Fjord 中就是待处理状态。在 Fjord 中将导入的任务标记为待处理,会将其工作项移至该状态;取消待处理则会将工作项移回之前的状态。你的 Azure 流程中必须为该工作项类型配置此状态,且要有编辑工作项的权限才能写入状态(通过你的 az login,或使用具有 Work Items Read & Write 权限的令牌)。如果 Azure 拒绝操作,任务仍会在 Fjord 中标记为待处理,Fjord 会告知你原因。将此设置留空,可让待处理状态仅在本地生效。
提及。 当有人在未分配给你的工作项中 @提及你时,概览会在提及下显示该项目、提及你的人以及对方写的内容。你可以在 Azure 中打开该项、将其添加到项目作为任务,或将其忽略。收到新提及也会有通知。此功能使用 Azure DevOps 自带的“最近提及”(最近 30 天内,仅限 Azure DevOps Services)。
![]() | ![]() |
fjord git link bokost ~/code/bokost
fjord git branch 12 # check out (or create) the task's branch
fjord git main bokost # back to the main branch
fjord git status bokost # branches and recent commits
fjord git prs bokost # pull requests + CI; moves merged tasks to done
fjord git pr 12 --draft # push the branch and open a pull request
fjord git which # the project and task for the current folder
fjord azure import # import Azure Boards work items (same settings as the app)
fjord azure links bokost # the work items behind a project's imported tasks
fjord notes list --folder Work # notes in a folder and its subfolders
fjord notes move 7 --folder Work/Meetings # sort a note into a folder
fjord notes rename-folder Work Jobb # rename a folder and everything under it
fjord notes lock 7 on # open read-only in the app
VS Code
Fjord for VS Code 会在资源管理器中显示与打开文件夹关联的项目看板,并在状态栏中显示你当前所在分支对应的任务。
- 启动任务(检出其分支)、移动任务、将其标记为已完成,或在编辑器中为其创建拉取请求
- 将文件夹关联到项目,并查找或下载
fjordCLI,无需离开 VS Code - 在任务 12 的分支上时,空的提交消息会以
#12开头 - 右键单击 TODO,即可将其转换为任务,并关联回对应行
- 每 10 分钟运行一次 Azure Boards 导入,因此即使应用已关闭,工作项也会到达
需要 fjord CLI 0.2.18 或更高版本,并会与应用使用同一个本地数据库。从扩展的发布页面安装 .vsix(code --install-extension fjord-*.vsix)。

AI Agent(MCP)
fjord mcp 会通过标准输入/输出运行 Model Context Protocol 服务。它所做的更改会记录为 claude(可通过 --actor 覆盖),并在应用中标记为 AI。
Claude Desktop: 从最新版本下载 fjord-mcp.mcpb 并打开;Claude Desktop 会将 Fjord 作为扩展安装,并附带命令行工具(适用于 Apple Silicon 版 macOS、Windows 和 Linux)。Fjord 也已列入 MCP Registry,名称为 io.github.jhtjernsmo/fjord。
其他客户端需要将 fjord 命令行工具加入 PATH(参见安装)。使用 Claude Code 时:
claude mcp add fjord -- fjord mcp
Cursor(~/.cursor/mcp.json)及其他客户端:
{ "mcpServers": { "fjord": { "command": "fjord", "args": ["mcp"] } } }
工具:list_projects、get_board、create_project、create_task、get_task、update_task、move_task、
complete_task、set_task_pending、archive_task、add_note、attach_file、search、recent_activity、link_repo、
git_status、start_branch、link_branch、list_pull_requests、open_pull_request、list_notes、get_note、update_note、backlinks、analyze_story、import_azure、list_new_imports、mark_analyzed。我们刻意不提供删除工具。
Agent 技能
MCP 工具会说明各自的功能;Fjord 技能则教 Agent 如何配合使用这些工具:更改看板前先查看看板,描述中保留你撰写的内容,将工作规划为任务,推动任务从分支走到拉取请求,分析故事,并整理 Azure 导入项。可将其安装到 Claude Code 和 Cursor(两者都会读取 ~/.claude/skills):
fjord skill install
fjord skill install --dir .claude/skills 会将其安装到仓库中;运行 fjord skill 可查看技能内容。若 CLI 版本低于 0.2.27,请手动将 skills/fjord 文件夹复制到 ~/.claude/skills/。
数据
| Linux | Windows | macOS | |
|---|---|---|---|
数据(fjord.db、files/) | ~/.local/share/fjord | %APPDATA%\fjord | ~/Library/Application Support/fjord |
键位映射(keymap.json) | ~/.config/fjord | %APPDATA%\fjord | ~/Library/Application Support/fjord |
应用中的设置会显示确切路径。设置 FJORD_DATA_DIR / FJORD_CONFIG_DIR 可使用其他位置(例如单独的测试数据库)。复制数据文件夹即可备份。
架构
crates/fjord-core Rust library: schema & migrations, projects, columns, tasks, files, notes, search, activity
crates/fjord-vcs Git (via the git CLI), GitHub and Azure DevOps REST integration
crates/fjord-cli `fjord` CLI and MCP server
src-tauri Tauri desktop shell — thin commands over fjord-core
ui React + TypeScript interface (dnd-kit, Lucide, Motion)
三个前端(GUI、CLI、MCP)都会经过 fjord-core,因此验证和活动日志在各处的行为一致。
开发
cargo test --workspace # Rust: core unit tests, CLI and MCP end-to-end tests
npm --prefix ui test # UI: keymap engine, i18n, helpers (Vitest)
cargo clippy --workspace --all-targets -- -D warnings
cargo fmt --all
npm --prefix ui run typecheck
请参阅 CONTRIBUTING.md。欢迎贡献翻译:复制 ui/src/i18n.ts 中的 no 代码块。
路线图
- 增加更多打包渠道:Flathub、AUR、winget
- 标签和已保存的筛选器
- 截止日期的桌面通知
- 从剪贴板粘贴图片、PDF 预览
- 将编写状态回写到 Azure Boards(可选择启用)
- GitHub issue ↔ 任务、卡片上的审核状态
- Windows 代码签名
- 时间线和日历视图
更新与安全
各版本的更改记录见 CHANGELOG.md。请按照 SECURITY.md 中的说明,私下报告安全问题。
许可证
您可以选择采用 Apache License 2.0 或 MIT 许可。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。








