1
0
Fork
You've already forked folio
0
A Markdown-native knowledge and project management system exposed as an MCP server.
  • Shell 100%
Find a file
David Wilson f0458d4538 Bump to 0.2.4: fix note-patch handler-error session wedge
Re-lock to sigil 0.17.3 (fixes the async-log-recursion hang, ecd318755) and
parse note-patch entries via direct recursion instead of map (a malformed patch
now returns a clean JSON-RPC error instead of dropping the response on the native
backend; the map-raise-through-prompt corruption is tracked separately as a sigil
native-codegen bug).
2026年07月07日 08:10:08 +03:00
src/folio Parse note-patch entries via direct recursion, not map 2026年07月07日 07:25:05 +03:00
test Re-lock to sigil 0.17.3 to fix note-patch handler-error session wedge 2026年07月07日 00:53:22 +03:00
.gitignore Refresh for sigil 0.14 ecosystem; bump to v0.2.0 2026年04月26日 15:47:41 +03:00
CLAUDE.md Handle occupied Folio web UI port 2026年05月02日 06:27:23 +03:00
dev-redirects.sgl Bump deps to sigil ^0.17 / sigil-mcp 0.16.1 ecosystem 2026年06月22日 13:02:57 +03:00
package.sgl Bump to 0.2.4: fix note-patch handler-error session wedge 2026年07月07日 08:10:08 +03:00
README.md Migrate to transitive deps with version ranges and lockfile 2026年04月01日 13:24:57 +03:00
sigil.lock Re-lock to sigil 0.17.3 to fix note-patch handler-error session wedge 2026年07月07日 00:53:22 +03:00

Folio

A markdown-native knowledge and project management system, exposed as an MCP server. Folio stores all state as structured markdown files — human-readable, git-committable, and programmatically queryable.

Built with Sigil.

Install

sigil app install codeberg:sigil/folio \
 --mcp \
 --env FOLIO_ROOT=~/folio

This installs the folio binary, registers it as a user-level MCP server, and points it at ~/folio as the data directory. The folio directory will be created on first run.

To install for a specific project instead (registers in the project's .mcp.json):

cd ~/my-project
sigil app install codeberg:sigil/folio \
 --mcp \
 --mcp-scope project \
 --env FOLIO_ROOT=./folio

Or add to .mcp.json manually:

{
 "mcpServers": {
 "folio": {
 "command": "folio",
 "env": {
 "FOLIO_ROOT": "./folio"
 }
 }
 }
}

What it does

Folio gives AI agents structured access to tasks, projects, and notes through MCP tools. The agent gets clean operations; you get readable markdown files with clean git diffs.

Tasks

Checkbox items with inline metadata:

- [ ] Add contact lookup tool {id: t-a3f2, priority: high, due: 2026年03月20日}
- [x] Fix reply identity selection {id: t-b1c4, completed: 2026年03月13日}

Projects

One markdown file per project in projects/, with YAML frontmatter, a task list, and a reverse-chronological log:

---
status: active
goal: Add contact management and improve search
area: development
last-updated: 2026年03月13日
---
# Bureau v2

## Tasks

- [ ] Add contact lookup tool {id: t-a3f2, priority: high, due: 2026年03月20日}
- [ ] Improve search result ranking {id: t-b1c4, priority: medium}
## Log

### 2026年03月13日

Fixed identity selection for replies. Bureau now auto-detects the
correct sending identity from the original email's To field.

Notes

Atomic reference notes in notes/ with [[crosslinks]] between them:

---
tags:
 - fastmail
 - jmap
created: 2026年03月12日
last-updated: 2026年03月13日
---
# Fastmail JMAP Quirks

Fastmail rejects the `#draft` back-reference key in `onSuccessUpdateEmail`.
## Related

- [[caldav-discovery]] - CalDAV has similar redirect issues
- [[bureau-send-pipeline]] - Where these quirks manifest

Notes support subdirectories for organization: procedures/, contacts/, preferences/, etc. Crosslinks resolve across both notes and projects.

Inbox

A single inbox.md for capturing items before they're triaged into projects.

Directory structure

folio/
├── inbox.md
├── projects/
│ ├── bureau-v2.md
│ └── sigil-gc.md
├── notes/
│ ├── fastmail-jmap-quirks.md
│ ├── procedures/
│ │ └── email-triage.md
│ └── contacts/
│ └── alice.md
└── archive/
 ├── projects/
 └── notes/

MCP Tools

Overview

Tool Description
folio/status Dashboard: inbox count, overdue tasks, stale projects, orphaned notes

Tasks

Tool Description
folio/tasks Query tasks across all projects and inbox with filters
folio/task-add Add a task to a project or inbox
folio/task-complete Mark a task as done
folio/task-update Update task metadata (priority, due, tags, waiting)
folio/task-move Move a task between projects or to inbox

Inbox

Tool Description
folio/inbox List all inbox items
folio/inbox-add Add an item to the inbox
folio/inbox-triage Move an inbox item to a project

Projects

Tool Description
folio/projects List projects with task counts
folio/project-info Full project details: tasks and log entries
folio/project-create Create a new project
folio/project-log Add a dated log entry to a project
folio/project-archive Archive a completed project
folio/project-clean Move completed tasks to the project log

Notes

Tool Description
folio/notes Search notes by text or tag
folio/note-read Read a note's full content
folio/note-create Create a new note
folio/note-edit Replace a note's content
folio/note-links Show outgoing links and backlinks
folio/note-rename Rename a note and update all crosslinks

Development

Requires Sigil v0.9.0+.

# Install dependencies
sigil deps install
# Build
sigil build
# Test
sigil test
# Run locally
FOLIO_ROOT=/tmp/folio ./build/dev/bin/folio
# Build release bundle (standalone binary)
sigil build --config release
FOLIO_ROOT=/tmp/folio ./build/release/bin/folio

License

BSD-3-Clause