Show HN: EtherPK – an Obsidian and Logseq alternative with prose and blocks App Software released EtherPK, a personal knowledge base in plain Markdown, as source-available software under the Elastic License 2.0, which permits use, copying, modification and self-hosting but not offering it to others as a hosted or managed service. The release includes a SvelteKit Client editor and a Headless Client published to npm as @appsoftwareltd/etherpk-mcp, an MCP server that gives an AI agent access to a user's graph. The Client runs in the browser with no account, or via Docker (ghcr.io/appsoftwareltd/etherpk-client:latest) or a Node.js 22+ tarball, and Sync Server graphs are stored end-to-end encrypted so the server cannot read them. The source of the EtherPK https://etherpk.com Client and Headless Client, available under the Elastic License 2.0 https://github.com/appsoftwareltd/etherpk-client/blob/main/LICENSE . Try the demo https://etherpk.com from etherpk.com. It runs in your browser, needs no account, and keeps what you write in that browser only. EtherPK is a personal knowledge base in plain Markdown. Journal entries hold daily thinking, pages hold what outlives a day, and wikilinks tie them into a knowledge graph. The Client is the editor: a SvelteKit app that opens a graph from a folder on your computer, or from a Sync Server that stores graphs end-to-end encrypted and cannot read them. The Headless Client is the same engine without an editor: an MCP server that gives an AI agent one of your graphs. User documentation is at https://docs.etherpk.com https://docs.etherpk.com . The Elastic License 2.0 lets you use, copy, modify and self-host this software. It does not let you offer it to others as a hosted or managed service. It is a source-available licence, not an open source one. | Path | Contents | |---|---| | apps/client | The Client | | apps/mcp | The Headless Client / MCP Server, published to npm as @appsoftwareltd/etherpk-mcp https://www.npmjs.com/package/@appsoftwareltd/etherpk-mcp README https://github.com/appsoftwareltd/etherpk-client/blob/main/apps/mcp/README.md | | packages/shared | Code the Client shares with the Sync Server: the sync protocol, UI components and auth pages | | packages/themes | The site themes the publisher bundles | docker run --rm -p 3000:3000 ghcr.io/appsoftwareltd/etherpk-client:latest Every tag is listed on the image's package page https://github.com/appsoftwareltd/etherpk-client/pkgs/container/etherpk-client . Open http://localhost:3000 http://localhost:3000 . With no settings the Client works with graph folders on your computer and offers a Custom server form for connecting to a Sync Server by its address. The settings it reads are listed, with their defaults, in apps/client/.env.example https://github.com/appsoftwareltd/etherpk-client/blob/main/apps/client/.env.example - pass them with --env-file . Each release attaches etherpk-client-