ForkLeaf

mcp
Guvenlik Denetimi
Uyari
Health Gecti
  • License รขโ‚ฌโ€ License: Apache-2.0
  • Description รขโ‚ฌโ€ Repository has a description
  • Active repo รขโ‚ฌโ€ Last push 0 days ago
  • Community trust รขโ‚ฌโ€ 14 GitHub stars
Code Uyari
  • fs module รขโ‚ฌโ€ File system access in .github/workflows/diagram-review.yml
Permissions Gecti
  • Permissions รขโ‚ฌโ€ No dangerous permissions requested

Bu listing icin henuz AI raporu yok.

SUMMARY

๐Ÿ“ Free, open-source Markdown notes that live in your own GitHub repo. Wikilinks, backlinks, offline search, Mermaid diagram studio, PDF reading and real version history, with no lock-in.

README.md
ForkLeaf

Notes that outlive the app that made them.

A full Markdown workspace whose database is a GitHub repository you already own.

Linked notes, offline search, a visual diagram studio and real version history,

with nothing stored on our servers and nothing to be locked out of.

CI
License: Apache 2.0
GitHub stars
Discussions
PRs welcome

Open ForkLeaf ยท
Try it without an account ยท
Documentation ยท
Discussions ยท
Wiki ยท
Changelog


The ForkLeaf home page


Why ForkLeaf?

Most note apps ask you to trust them with your writing. ForkLeaf doesn't hold your
notes at all. Every note is a plain .md file in a GitHub repository you own.

๐Ÿ—‚ Storage Your GitHub repository. Nothing is stored on our servers.
๐Ÿ•ฐ History Ordinary git commits. git log your notes, blame a paragraph.
โœˆ๏ธ Offline Everything is written to IndexedDB first, then pushed.
๐Ÿ“ค Export PDF, HTML, Word, Markdown, plain text and JSON, all in the browser.
๐ŸŒ Publishing Public pages, books and digital gardens served by GitHub Pages.
๐Ÿ”“ Lock-in None. Clone the repository and every note is still there.

Free, all of it, with no tiers. The expensive part of a notes app is storage,
and ForkLeaf has none.

Features

โœ๏ธ Write the way you like

Rich text, split source and preview, or raw Markdown, switchable per note.
Slash commands, a โŒ˜K command palette, a properties panel that edits YAML
frontmatter, and live stats and outline for every note.

Split view: Markdown source beside the rendered preview
Hovering a wikilink shows a preview card; backlinks in the side panel

๐Ÿ”— Notes that link to each other

[[Wikilinks]] in the Obsidian dialect, with hover previews, backlinks quoted at
the line they were written on, and links to notes you haven't written yet.
Full-text search ranks every word of every note, offline.

๐Ÿ“Š A real diagram studio

Mermaid diagrams drawn on a canvas or typed with autocomplete. A gallery of
14 templates, and node positions that survive the round trip between the
visual builder and the source.

Mermaid flowchart source beside its rendered diagram

And much more:

  • ๐Ÿ“„ Read PDFs beside your notes. Quote a passage and the citation records the sentence, not the page number.
  • ๐Ÿ”„ Local-first sync. Rapid edits coalesce into one clean commit. Offline changes queue up, and conflicts are shown, never silently merged.
  • ๐Ÿ•ต๏ธ History and review. Every version of every note, blame for prose, a timeline replay of how your notebook grew, and spaced reading.
  • ๐ŸŒฟ Branches and pull requests. Write on any branch, or propose changes to a repository you can't push to.
  • ๐ŸŒ Publish a note, a book or a digital garden to GitHub Pages, with backlinks and a link map.
  • ๐Ÿงฉ Browser extension. Save pages, selections and highlights from anywhere on the web to your inbox.
  • ๐Ÿค– AI assistants. A built-in MCP server lets Claude and other assistants search, read and write your notes as ordinary commits.
  • ๐ŸŽจ Themes, keyboard shortcuts for everything, and installable as an app on desktop.

See the full list on the features page or in features.md.

Getting started

Use it online

  1. Go to www.forkleaf.in and click Continue with GitHub.
  2. Pick an existing repository or let ForkLeaf create a private one for you.
  3. Start writing. Every change is saved to your repository as a commit.

You can also try it without an account:
notes stay in your browser until you connect GitHub.

Run it locally

Requirements: Node.js 20.9+ and pnpm 9+.

git clone https://github.com/praneeth132006/ForkLeaf.git
cd ForkLeaf
pnpm install
pnpm dev

Open http://localhost:3000/editor. With no configuration, ForkLeaf runs in
local mode: fully functional, with notes stored in your browser. This is also
how the test suite and CI exercise the app.

Connect GitHub while developing
  1. Go to GitHub โ†’ Settings โ†’ Developer settings โ†’ OAuth Apps โ†’ New OAuth App and set:

    • Homepage URL: http://localhost:3000
    • Authorization callback URL: http://localhost:3000/api/auth/callback
  2. Copy the example environment file and fill in your app's values:

    cp .env.example apps/web/.env.local
    
    GITHUB_OAUTH_CLIENT_ID=your_client_id
    GITHUB_OAUTH_CLIENT_SECRET=your_client_secret
    SESSION_SECRET=generate_with_openssl_rand_base64_32
    NEXT_PUBLIC_APP_URL=http://localhost:3000
    
  3. Generate the session secret with openssl rand -base64 32, then restart pnpm dev.

ForkLeaf requests the repo scope because it writes to private repositories;
public_repo is offered on the sign-in page for anyone keeping notes in public
repositories only.

How it works

flowchart LR
    You([You type]) --> Editor
    Editor --> Store[(IndexedDB)]
    Store --> Queue[Change queue]
    Queue --> API[Next.js API route]
    API --> GH[(Your GitHub repo)]

    subgraph Browser
        Editor
        Store
        Queue
    end

Your GitHub token lives only on the server, encrypted into an httpOnly cookie. The
browser talks to /api/gh/*, never to GitHub directly, so no script on the page
can read your token. More in docs/architecture.md.

Repository layout

This is a pnpm + Turborepo monorepo.

Package Responsibility
apps/web Next.js app: auth, API routes, publishing, the editor shell and docs
apps/extension The "Save to ForkLeaf" browser extension
@forkleaf/editor React editing surfaces: rich text, source, split and the diagram studio
@forkleaf/store IndexedDB storage, change queue, sync engine, conflicts, search index
@forkleaf/github-client GitHub REST client: trees, files, atomic multi-file commits
@forkleaf/markdown-engine Frontmatter, parsing, sanitised rendering, wikilinks
@forkleaf/diagrams Mermaid rendering, templates, autocomplete, visual-builder graph model
@forkleaf/exporter Client-side PDF, HTML, DOCX, Markdown and ZIP export
@forkleaf/pdf PDF text extraction, in-document search, durable citations
@forkleaf/mcp MCP server for AI assistants
@forkleaf/types Shared domain model

Development

pnpm dev          # start the web app
pnpm test         # run the test suite
pnpm typecheck    # typecheck every package
pnpm lint         # lint
pnpm build        # production build
pnpm check        # everything above, in order (run this before a pull request)

Community

  • ๐Ÿ’ฌ Discussions: questions, ideas and showing what you've built.
  • ๐Ÿ› Issues: bug reports and feature requests.
  • ๐Ÿ“š Wiki: guides, FAQ and recipes from the community.
  • โœ‰๏ธ Email: [email protected] for anything private. Replies sometimes land in spam, so check there if you haven't heard back.

Contributing

Contributions of every size are welcome, from a typo fix to a new feature. Read
CONTRIBUTING.md for setup, conventions and good first issues,
and please follow the Code of Conduct.

Found a security issue? Please don't open a public issue. See SECURITY.md.

If ForkLeaf is useful to you, a โญ on the repository helps other people find it.

License

Apache License 2.0 ยฉ ForkLeaf contributors.

Yorumlar (0)

Sonuc bulunamadi