fjord

mcp
Guvenlik Denetimi
Uyari
Health Uyari
  • License — License: NOASSERTION
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 5 GitHub stars
Code Gecti
  • Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Gecti
  • Permissions — No dangerous permissions requested

Bu listing icin henuz AI raporu yok.

SUMMARY

Local-first project management, Linux first, also on Windows and macOS: kanban, notes with [[links]] and files in SQLite. Keyboard-first, mouse-friendly, with a CLI and MCP server for AI agents.

README.md
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
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. The Overview lists everything due this week across your projects, overdue first.
  • 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.
  • Subtasks — break a task into subtasks (one level) with their own status, priority and branch; 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, with folders and pins. 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, and the discussion readable in the task. Work items where someone @mentions you show up in the Overview.
  • AI-agent ready — fjord mcp exposes 25 tools to MCP clients such as Claude. 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.
Overview Task details
which-key popup after pressing the leader key Command palette
Column options Light theme

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:

System File
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:

brew install --cask jhtjernsmo/fjord/fjord   # the app
brew 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.

# 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

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.

Keys Action Keys Action
Ctrl+K Command palette h j k l Move around the board
Space p Switch project H / L Move task to previous/next column
Space t New task J / K Move task down/up
Space f Search everything Enter Open task
Space n New project o New task in this column
Space b o F a A Board, notes, files, activity, archive x Toggle done
Space , Settings d d Archive task
Space L Switch language p Cycle priority
Space N Notespace / Filter the board
Space g Git tab B Start branch for task
Space r Sync pull requests a Add subtask to task
Space i Import from Azure Boards S Show or hide subtasks
Space T Cycle themes y Copy task reference ([[#12]])
Space ? Report a bug g g / G First / last task
Esc Close Delete Delete 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.

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 and P opens a pull request.

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

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

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

Command line

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 project show bokost          # board in the terminal
fjord search push
fjord log bokost                   # activity
fjord --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.

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).

Git tab Git in a task
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

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.

With Claude Code:

claude mcp add fjord -- fjord mcp

Other clients:

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

Tools: list_projects, get_board, create_project, create_task, update_task, move_task,
complete_task, 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, import_azure, list_new_imports, mark_analyzed. There is deliberately no
delete tool.

Data

Linux Windows macOS
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, 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)

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

Development

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

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

Roadmap

  • More packaging: Flathub, AUR, winget, Homebrew
  • 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.

Yorumlar (0)

Sonuc bulunamadi