Skip to the guide

Open source · Desktop app · Apache-2.0

A knowledge base your team can edit and your agents can trust.

kmdn puts a friendly editor and a real review flow on top of a git repository of markdown. People write. Agents write. Every change goes through a pull request.

GitHub & GitLab Claude Code · Codex · pi Markdown only macOS & Linux

Scroll

The kmdn home screen: a sidebar with threads and documents, and a composer asking what should change.

01 — The problem

Wikis are easy for people. Git is easy for agents.

In a wiki

Your team writes happily. Then an agent needs the content and finds an API, a database, and no honest way to review a change before it lands.

In a git repository

Agents are perfectly happy. Then someone who does not live in a terminal needs to fix a paragraph, and the fix quietly never happens.

One repository of markdown, edited by everyone, reviewed like code.

02 — How it works

From a sentence to a merged pull request.

Eight steps, in the order they actually happen. Scroll, or pick a step.

  1. STEP 01 Point it at a repository Sign in to GitHub or GitLab, pick the repository, choose a folder. kmdn clones it and opens the markdown inside.
  2. STEP 02 Read it like documentation Folders are sections and frontmatter becomes a properties table. Nobody has to know which file is which.
  3. STEP 03 Start from a sentence Type what should change. That sentence opens a thread: a git worktree on its own branch, and eventually a pull request.
  4. STEP 04 Edit the markdown A live-preview editor with the raw text right there. Save commits to the thread's branch, never to main.
  5. STEP 05 Or hand it to an agent Claude Code, Codex, or pi work inside the same thread. Every tool call is listed, and writes are limited to markdown and assets.
  6. STEP 06 See what actually changed The diff is rendered markdown, not a wall of plus and minus. Unchanged blocks fold away until you ask for them.
  7. STEP 07 Settle conflicts block by block When main has moved, each differing block appears twice, on main and in this thread. You choose, then apply.
  8. STEP 08 Submit it for review Submit opens a pull request on your host. A reviewer reads the rendered diff, comments, approves, and publishes.
The kmdn sign-in screen with the three onboarding steps: sign in, knowledge base, folder. A deploy guide rendered as a document, with a properties table and a deploy windows table. The home composer with the sentence: add a rollback section to the deploy guide. The thread editor open on the deploy guide with unsaved changes and a save button. An agent conversation listing read and write tool calls, ending with a passing diff check. The changes tab showing a rendered diff of the modified deploy guide. The conflict resolver showing six differing blocks side by side, on main and in this thread. A thread with the sidebar, the agent conversation, and the rendered diff side by side.

03 — What is in it

Git is plumbing. The app speaks documents, changes, and reviews.

01

Threads

A thread is one change: a git worktree, its own branch, an optional agent conversation, and eventually a pull request. Starting one is the primary gesture, not opening a file.

02

Rendered diffs

Changes are shown as rendered markdown, old beside new, with long runs of untouched blocks folded away. Reviewers read prose instead of counting plus and minus signs.

03

Reviews are pull requests

Comments, approvals, required checks, and merges all belong to GitHub or GitLab. Nothing kmdn needs lives only inside kmdn.

04

Agents in the thread

Claude Code, Codex, and pi run in the worktree through native adapters. A write gate normalises every path and refuses anything that is not a markdown document or an asset.

05

Conflicts, block by block

When main has moved under a thread, kmdn rebases and hands back the differing blocks. Each one shows what is on main next to what is in the thread, and you pick.

06

Checks before you submit

Broken relative links, invalid frontmatter, oversize or non-image assets, and a stale index are caught locally, and again on the pull request if you add the CI job.

07

GitHub and GitLab

One provider interface covers both, including self-hosted GitLab. Sign in with a device flow or a token; tokens go to the operating system keychain.

08

Themes and typography

Ten themes including Catppuccin, Nord, and Gruvbox. Separate fonts for interface, reading, and code, with an adjustable reading size. Saved per device.

09

A command line for CI

The same checks and the same index generation run from kmdn-cli, so a pull request opened from anywhere is held to the rules the app applies.

04 — Agents

Agents are users, not a feature.

They edit inside the same thread as a person, and their work goes through the same review.

Every tool call appears in the timeline as it happens: a read shows the file, a write shows the path, a refused call shows why. What kmdn cannot decide by itself becomes a question with an Allow and a Deny button. Nothing an agent writes is committed until you accept it.

  • SuggestReads the knowledge base and proposes the change in its reply. Writes are refused.
  • EditThe default. Reads, and writes markdown documents and files under assets/. Shell is refused.
  • DeveloperEdit, plus shell commands that you approve one at a time. Behind a setting.
An agent timeline listing each tool call, with the changes tab showing one modified document.

05 — The repository is the point

Any agent can read it with a plain clone.

kmdn keeps a generated AGENTS.md at the root: every document, its title, its description, and how the knowledge base is meant to be read. There is no database and no export step. Delete kmdn tomorrow and you still have a git repository full of markdown.

# no app required, no API, no export
git clone https://github.com/acme/handbook
cd handbook

# the map an agent reads first
cat AGENTS.md

claude "what is our deploy window?"

06 — Appearance

It should look like something you want to write in.

The kmdn home screen in the dark theme.
Dark
The thread editor in the Catppuccin Mocha theme.
Catppuccin Mocha
The changes tab in the Nord theme.
Nord
The home screen in the Gruvbox Light theme.
Gruvbox Light

07 — Install

Build it from source, for now.

The golden path works end to end, and an end-to-end test drives it against a real repository. There are no signed packages yet, so today you build it yourself.

# clone and run
git clone https://github.com/kmdn-app/kmdn
cd kmdn
pnpm install
pnpm tauri dev

# a release build
pnpm tauri build
Status. Packaged downloads, the updater, and a notarised macOS build are still open work. Follow the release issue if you would rather wait for a binary.
  • Node 22 or newer, with pnpm 10
  • Rust stable, with rustfmt and clippy
  • macOS: the Xcode command line tools
  • Linux: the WebKitGTK and GTK development packages
  • Optional: an agent on your PATH — claude, codex, or pi

Apache-2.0 · GitHub and GitLab · macOS and Linux

Put the knowledge base where your agents can already reach it.

It is a git repository of markdown either way. kmdn is the part that lets the rest of your team keep it honest.