Fjord

io.github.jhtjernsmo由 GitHub 账号 jhtjernsmo 发布v0.2.32更新于 Oct 28, 2026

Local kanban boards, markdown notes and Git/GitHub/Azure DevOps work from the Fjord app.

概览

AI 生成的概览

Fjord 的 MCP 服务器让助手在本地 SQLite 数据库中的看板项目、笔记以及 Git/GitHub/Azure DevOps 任务里工作。

可以做什么
  • 列出项目、读取看板,并创建、更新、移动、完成、归档任务或标记为等待中
  • 撰写和编辑 Markdown 笔记、附加文件,并搜索任务、笔记和文件名
  • 查看近期活动与反向链接,让改动可追溯
  • 关联仓库、查看 Git 状态、创建或关联分支、列出并创建拉取请求
  • 导入 Azure Boards 工作项、列出新导入、标记为已分析并分析用户故事
适用场景
当你在 Fjord 桌面应用中管理项目,并希望助手在你日常使用的同一批本地项目里规划任务、起草笔记,或把任务从分支推进到拉取请求时使用。
运行要求
需要本地安装 Fjord:PATH 中有 fjord 命令行工具(或使用 Claude Desktop 扩展包),以 fjord mcp 通过 stdio 启动。Git 功能使用你已安装的 git;GitHub 需要 GITHUB_TOKEN 或 GH_TOKEN、登录,或 gh auth login;Azure DevOps 需要 AZURE_DEVOPS_EXT_PAT 或 az login。
安装前请注意
助手可以创建、编辑、移动、归档和完成任务与笔记,也能创建拉取请求或更改 Azure 工作项状态,因此改动会写入你的真实项目,并以该代理为作者记录。GitHub 与 Azure DevOps 令牌来自环境变量或操作系统凭据存储,应视为机密。虽然没有删除工具,但助手所做的写入无法由它撤销。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Fjord,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

[Fjord]

Fjord

Local-first project management — Linux first, also on Windows & macOS. Built for the keyboard, friendly to the mouse, and open to AI agents.

[OpenSSF Best Practices] [OpenSSF Scorecard] [CI] [License] [Platform] [AppImageHub] [Status]

[Fjord used with the keyboard only: jump to a project, move and add tasks, search, open the Git tab and notes]

Fjord keeps your projects, kanban boards, files and notes in a single SQLite database on your own machine. No account, no cloud, no telemetry. It's a lightweight native desktop app (Tauri), a scriptable CLI, and an MCP server — so you and your AI assistant can work in the same projects, and you can always see who did what.

Features

  • Projects & kanban boards — drag and drop, or move tasks with H/L. Rename, recolor, reorder and add columns, and mark one or more as done columns (e.g. Resolved and Done). Right-click a project to change its icon and colour.
  • Tasks — markdown descriptions, priority, due dates, overdue warnings, archive & restore. Move a task to another project with its subtasks and files, or pop it out into its own window to keep beside the board or on another monitor. The Overview lists everything due this week across your projects, overdue first.
  • Standup and Waiting on you (beta) — on your standup days the Overview drafts the standup for one project (done, in progress, your PRs, where you were mentioned) to copy as text, and lists pull requests waiting for your review or with failed checks. Both are off by default; turn them on in Settings → Overview, where every Overview section can be switched on or off.
  • Files — drop files onto the window to attach them to a project or task. Stored content-addressed (deduplicated) with image previews.
  • Themes — five built-in themes (Fjord Dark/Light, Nord, Solarized Light, High Contrast), follow the OS with separate light/dark picks, or build your own with live preview: colours, text size, rounding and density; share themes as JSON. Space T cycles themes.
  • Pending — mark a task as waiting on someone else, such as a reply from the client (w, right-click, or the task panel). It stays in its column with a “pending 3d” badge, can be filtered on, is listed on the Overview with the longest waiting first, and shows up as a blocker in the standup. Tasks from Azure Boards follow their work item both ways: a work item set to Pending in Azure becomes pending in Fjord, and marking it pending in Fjord moves the work item there (and back when you clear it).
  • Subtasks — break a task into subtasks (one level) with their own status, priority and branch, or make an existing task a subtask of another (and back); cards show progress (2/5), the task panel lists them with check-off, drag to reorder and A to add.
  • Notespace — Obsidian-style markdown notes, inside a project or free-floating, in folders and subfolders (drag a note onto a folder, sort by name or date), with pins and notes you can lock to read-only. Link anything with [[Project]], [[#12]] (a task) or [[Another note]] — type [[ for autocomplete — and see backlinks (“mentioned in”) on tasks, projects and notes. Tables, task lists and Mermaid diagrams render in notes and task descriptions; web links open in your browser.
  • Full-text search across tasks, notes and file names (Space f).
  • Keyboard-first — a leader key with a which-key popup, vim motions on the board, a Ctrl+K command palette, and every binding configurable. The mouse works for everything too.
  • Git, GitHub & Azure DevOps — link a project to a repo, start a branch with a conventional name from any task (B, e.g. feat/12-add-login) or link an existing one, see pull requests with CI status, open PRs from a task, and let merged PRs move tasks to done.
  • Azure Boards import — work items assigned to you show up as tasks in the project you choose, with their state mapped to your columns, child items as subtasks, attachments and screenshots, and the discussion readable in the task. Optional (beta): send a story analysis's acceptance criteria and risk back to the work item, and reply in its discussion. Work items where someone @mentions you show up in the Overview.
  • VS Code extension — Fjord for VS Code shows the board next to your code and the current branch's task in the status bar. See VS Code.
  • AI-agent ready — fjord mcp exposes 28 tools to MCP clients such as Claude Code and Cursor, and an Agent Skill teaches agents how to use them. Agents can create, edit, move and archive but never hard-delete, and every change is tagged with its author.
  • Activity log — what changed, when, and by whom (you or an agent).
  • Live updates — changes from the CLI or an agent appear in the open app within a second or two.
  • English and Norwegian — English by default; adding a language is one file.
  • Updates itself — signed in-app updates; Settings shows the installed version.

Install

Fjord is Linux first: that's where it's developed and used daily. Windows and macOS builds come from the same code and are tested in CI on every pull request.

Download

Grab the installer for your system from Releases:

SystemFile
Linux.AppImage (any distro), .deb (Debian/Ubuntu), .rpm (Fedora/openSUSE)
Windows 10/11.msi or -setup.exe
macOS.dmg (Apple Silicon or Intel)

On macOS (and for the CLI on Linux) you can also use Homebrew:

sh
brew install --cask jhtjernsmo/fjord/fjord   # the appbrew install jhtjernsmo/fjord/fjord-cli      # the `fjord` command-line tool

The CLI is attached separately as fjord-cli-<platform>. From 0.2.9 the macOS app is signed with an Apple Developer ID and notarized, so it opens normally. Windows builds aren't code-signed yet and may show a SmartScreen warning (More info → Run anyway).

Build from source

Requirements: Rust (stable), Node.js 20+. On Linux also WebKitGTK 4.1; Windows uses the built-in WebView2, and macOS needs the Xcode command line tools.

sh
# Archsudo pacman -S --needed webkit2gtk-4.1 base-devel# Debian / Ubuntusudo apt install libwebkit2gtk-4.1-dev build-essential libssl-dev librsvg2-dev# Fedorasudo dnf install webkit2gtk4.1-devel openssl-devel librsvg2-devel
sh
git clone https://github.com/jhtjernsmo/fjord.gitcd fjordnpm --prefix ui installnpx --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

For development with hot reload: npx --prefix ui tauri dev.

Updates

From 0.2.1 on, Fjord checks GitHub Releases on startup and offers Update & restart (Windows, macOS and the Linux AppImage; .deb/.rpm update via your package manager). Updates are signed and verified before installing; the check can be turned off in Settings. Settings → Updates shows the installed version and has a Check now button. Versions before 0.2.1 have no updater, so install the latest release once by hand.

Keyboard

[Fjord board]

Press ? in the app to see every shortcut. Press the leader key (Space) and wait a moment to see what comes next.

KeysActionKeysAction
Ctrl+KCommand paletteh j k lMove around the board
Space pSwitch projectH / LMove task to previous/next column
Space tNew taskJ / KMove task down/up
Space fSearch everythingEnterOpen task
Space nNew projectoNew task in this column
Space b o F a ABoard, notes, files, activity, archivexToggle done
Space ,Settingsd dArchive task
Space LSwitch languagepCycle priority
Space NNotespace/Filter the board
Space gGit tabBStart branch for task
Space rSync pull requestsaAdd subtask to task
Space iImport from Azure BoardsSShow or hide subtasks
Space TCycle themesyCopy task reference ([[#12]])
wPending on/off (waiting on the client)
Space ?Report a bugg g / GFirst / last task
EscCloseDeleteDelete task

On the Overview: j / k move through due tasks, mentions and projects, Enter opens, a adds a mention as a task and x dismisses it. Space G creates a GitHub repository for the current project. Ctrl+B collapses the sidebar to icons, like in VS Code.

In an open task: [ / ] move it to the previous/next column, e edits, A adds a subtask, B starts a branch, L links an existing one, P opens a pull request, m moves it to another project, o pops it out into its own window and N makes it a subtask of another task (or a regular task again).

On macOS, Ctrl shortcuts use ⌘ instead. Remap anything in keymap.json (see Data for where it lives):

json
{  "leader": "space",  "bindings": {    "task.archive": "D",    "search.open": "<leader>/"  }}

Action ids are listed in ui/src/keymap.ts.

Command line

sh
fjord project add "Bokost" --icon '$'fjord task add bokost "Fix push notifications" -p 3 --due 2026-10-10fjord column add bokost Reviewfjord task move 1 reviewfjord task done 1fjord task nest 3 1                # make #3 a subtask of #1 (unnest to undo)fjord project show bokost          # board in the terminalfjord search pushfjord log bokost                   # activityfjord --json project ls            # JSON for scripts

Run fjord --help for everything. Changes are recorded with an actor: --actor, $FJORD_ACTOR or $USER.

Git & GitHub

Link a project to a repository in the Git tab (or fjord git link <project> <path>). No repository yet? Tick Also create a repository on GitHub when you make a project, or use the Git tab: Fjord creates it (private or public, under you or an organization, with an optional README, .gitignore and license), clones it and links it in one step. A local repository without a remote can be published the same way. If you aren't signed in to GitHub, you can sign in right there.

Once a project is linked, Fjord:

  • starts a branch for a task with a conventional name — fix/12-fix-push-notifications. Pick the type (feat, fix, chore, docs, refactor, test, perf, ci, hotfix) in the task, or let Fjord guess: fix for bug-like tasks and Azure Bugs, feat otherwise. The task moves to the second column,
  • or links a task to a branch that already exists. Several tasks can share one branch, and its pull request shows on all of them,
  • shows branches, recent commits and GitHub pull requests with their CI status,
  • links pull requests to tasks by branch name, and opens a PR straight from a task (the title follows the branch type, e.g. feat: Add login, and the description comes from the task),
  • opens the repository in your editor or IDE (VS Code, Cursor, JetBrains IDEs, Visual Studio, Zed, Sublime, or your own command; set in Settings → Integrations), on the task's branch, with Space e,
  • moves the task (or all tasks on the branch) to done when the PR is merged (on Sync), unless you turn auto-move off.

If GitHub or Azure DevOps refuses access, the Git tab shows their own explanation, for example an organization that restricts OAuth apps or requires SSO approval.

Git runs through your installed git, so your config, hooks and credentials apply. GitHub access (needed for private repositories and opening PRs) comes from, in order: GITHUB_TOKEN/GH_TOKEN, a Sign in with GitHub in Settings (browser sign-in, OAuth device flow) or a personal access token pasted there, or gh auth login. A connected token is checked with GitHub and kept in the OS credential store (Windows Credential Manager, macOS Keychain, Secret Service on Linux), never in Fjord's database or files. Public repositories can be read without one.

Azure DevOps (beta). Repositories on dev.azure.com (and the older visualstudio.com URLs) are detected the same way and get the same features: pull requests with pipeline status, a branch per task, opening PRs from a task, and moving tasks to done when their PR completes. Auth comes from AZURE_DEVOPS_EXT_PAT, a personal access token per organization in Settings → Azure DevOps (scopes: Code Read & Write, Build Read; stored in the OS credential store), or the Azure CLI: add the organization in Settings without a token and Fjord uses az login.

Azure Boards import (beta). Work items assigned to you can be imported into chosen Fjord projects (on start and every 10 minutes, no duplicates). Each item lands in the column named like its Azure state (Active falls back to your in-progress column, New to the first), child items become subtasks, items finished in the last 30 days (configurable) are included, and a notification tells you what was added or changed. The task panel shows the work item's discussion. An AI agent can analyze new ones through the MCP server (import_azure, list_new_imports, mark_analyzed). Setup, a ready-made triage prompt and how to schedule it: docs/azure-boards-triage.md.

Pending. A work item in the state named in Settings → Integrations → Pending state (Pending by default) is pending in Fjord. Marking an imported task pending in Fjord moves its work item to that state, and clearing it moves the work item back to the state it had before. The state has to exist for the work item type in your Azure process, and writing it needs permission to edit work items (your az login, or a token with Work Items Read & Write). If Azure refuses, the task is still marked in Fjord and Fjord tells you why. Leave the setting empty to keep pending local.

Mentions. When someone @mentions you in a work item that isn't assigned to you, the Overview shows it under Mentioned: the item, who mentioned you and what they wrote. Open it in Azure, add it to a project as a task, or dismiss it. New mentions also get a notification. This uses Azure DevOps' own "recent mentions" (the last 30 days, Azure DevOps Services only).

sh
fjord git link bokost ~/code/bokostfjord git branch 12          # check out (or create) the task's branchfjord git main bokost        # back to the main branchfjord git status bokost      # branches and recent commitsfjord git prs bokost         # pull requests + CI; moves merged tasks to donefjord git pr 12 --draft      # push the branch and open a pull requestfjord git which              # the project and task for the current folderfjord azure import           # import Azure Boards work items (same settings as the app)fjord azure links bokost     # the work items behind a project's imported tasksfjord notes list --folder Work            # notes in a folder and its subfoldersfjord notes move 7 --folder Work/Meetings  # sort a note into a folderfjord notes rename-folder Work Jobb        # rename a folder and everything under itfjord notes lock 7 on                      # open read-only in the app

VS Code

Fjord for VS Code puts the board of the project linked to the open folder in the Explorer, and the task for the branch you're on in the status bar.

  • start a task (checks out its branch), move it, mark it done or open a pull request from the editor
  • link a folder to a project, and find or download the fjord CLI, without leaving VS Code
  • an empty commit message starts with #12 while you're on task 12's branch
  • right-click a TODO to turn it into a task that links back to the line
  • runs the Azure Boards import every 10 minutes, so work items arrive even when the app is closed

It needs the fjord CLI 0.2.18 or later and talks to the same local database as the app. Install the .vsix from the extension's releases (code --install-extension fjord-*.vsix).

[Fjord for VS Code]

AI agents (MCP)

fjord mcp runs a Model Context Protocol server on stdio. Changes it makes are recorded as claude (override with --actor) and shown with an AI tag in the app.

Claude Desktop: download fjord-mcp.mcpb from the latest release and open it; Claude Desktop installs Fjord as an extension, with the command-line tool included (macOS on Apple Silicon, Windows and Linux). Fjord is also listed in the MCP Registry as io.github.jhtjernsmo/fjord.

Other clients need the fjord command-line tool on your PATH (see Install). With Claude Code:

sh
claude mcp add fjord -- fjord mcp

Cursor (~/.cursor/mcp.json) and other clients:

json
{ "mcpServers": { "fjord": { "command": "fjord", "args": ["mcp"] } } }

Tools: 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. There is deliberately no delete tool.

Agent Skill

The MCP tools say what each one does; the Fjord skill teaches an agent how to use them together: look at the board before changing it, keep what you wrote in a description, plan work into tasks, take a task from branch to pull request, analyse a story, triage Azure imports. Install it for Claude Code and Cursor (both read ~/.claude/skills):

sh
fjord skill install

fjord skill install --dir .claude/skills puts it in a repository instead, and fjord skill prints it. With a CLI older than 0.2.27, copy the skills/fjord folder into ~/.claude/skills/ by hand.

Data

LinuxWindowsmacOS
Data (fjord.db, files/)~/.local/share/fjord%APPDATA%\fjord~/Library/Application Support/fjord
Keymap (keymap.json)~/.config/fjord%APPDATA%\fjord~/Library/Application Support/fjord

Settings in the app shows the exact paths. Set FJORD_DATA_DIR / FJORD_CONFIG_DIR to use other locations (for example a separate test database). Back up by copying the data folder.

Architecture

crates/fjord-core   Rust library: schema & migrations, projects, columns, tasks, files, notes, search, activitycrates/fjord-vcs    Git (via the git CLI), GitHub and Azure DevOps REST integrationcrates/fjord-cli    `fjord` CLI and MCP serversrc-tauri           Tauri desktop shell — thin commands over fjord-coreui                  React + TypeScript interface (dnd-kit, Lucide, Motion)

All three front ends (GUI, CLI, MCP) go through fjord-core, so validation and the activity log behave the same everywhere.

Development

sh
cargo test --workspace             # Rust: core unit tests, CLI and MCP end-to-end testsnpm --prefix ui test               # UI: keymap engine, i18n, helpers (Vitest)cargo clippy --workspace --all-targets -- -D warningscargo fmt --allnpm --prefix ui run typecheck

See CONTRIBUTING.md. Translations are welcome: copy the no block in ui/src/i18n.ts.

Roadmap

  • More packaging: Flathub, AUR, winget
  • Tags and saved filters
  • Desktop notifications for due dates
  • Paste images from the clipboard, PDF previews
  • Writing status back to Azure Boards (opt-in)
  • GitHub issues ↔ tasks, review status on cards
  • Windows code signing
  • Timeline and calendar views

Changes and security

What changed in each version is in CHANGELOG.md. Please report security problems privately, as described in SECURITY.md.

License

Licensed under either of Apache License 2.0 or MIT, at your option.

来源:README.md,提交 e15cf05

工具

0
SourceWeft 曾在隔离沙箱中以无凭据方式启动该软件包一次,以列出其工具,但未能完成:该软件包类型无法在沙箱中运行。

版本历史

2
  1. v0.2.32最新Oct 23, 2026
  2. v0.2.31Oct 22, 2026

评分

已满足适用检查项的 40%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。