Skip to content
absoluteprayaPublic

About

Everything you want to come back to. A self-hosted library for bookmarks, watchlists, wishlists, notes, and files.

Topics

Resources

Contributing

Security policy

Stars

12 stars

Watchers

1 watching

Forks

Latest commit

 

History

2,745 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Marka

Everything you want to come back to.
A self-hosted personal library for links, watchlists, wishlists, notes, and files.

CI Latest release License: AGPL-3.0

Features  ·  Get started  ·  AI agents  ·  Architecture  ·  Development  ·  Roadmap

Save the article you want to read, the movie you want to watch, the product you are comparing, or the course material you will need again. Marka brings them into one visual library, with previews and context to help you find them later.

Marka library showing visual cards for saved social posts, data visualizations, articles, products, movies, and UI references.

Features

Feature What you can do
Save from anywhere Capture links, text, images, and PDFs through the web app, browser extension, CLI, or API. Import existing bookmarks or subscribe to RSS feeds.
Keep the context Retain page titles, descriptions, preview images, screenshots, and archived content alongside your own notes.
Read and annotate Open saved articles in Reader View, highlight passages, and keep your reading progress.
Organize your way Build nested lists, add tags, automate with rules, and share lists with collaborators.
Find it again Search saved content with Meilisearch and narrow results with search filters.
Make it your library Self-host your data, use the web app or PWA, and connect your own tools through the REST API, SDK, CLI, or MCP server.

Tip

AI tagging and summaries are optional. You can use Marka without an AI provider, or configure one when you want those features.

Self-host Marka

On a Linux amd64 host with Docker Engine, Docker Compose v2, and OpenSSL installed:

curl -fsSLo /tmp/marka-setup.sh https://raw.githubusercontent.com/absolutepraya/marka/main/scripts/install.sh && bash /tmp/marka-setup.sh

The guided installer asks how you will access Marka (locally, over a trusted LAN, or through an HTTPS domain) and where to store configuration and data, then sets up the web app, workers, search, and browser rendering. Use the recommended defaults or choose external services and optional AI in advanced setup.

Setup waits for web and workers to become ready. Reconfiguration keeps existing secrets and settings; the generated helper provides health diagnostics and backups before updates.

Important

The default listener is 127.0.0.1:3000. For Internet access, provide a reverse proxy with TLS. The installer expects Docker to be installed and leaves DNS, firewall rules, and certificates to you.

The installer follows the paired web-stable and workers-stable image channel. For reproducible setup, replace main in the download URL with a reviewed release tag or commit SHA. Immutable version and source-commit image pairs are available for rollback.

Follow the installation guide for configuration choices, backups, updates, and rollback.

Connect an AI agent

Give a compatible agent the Marka skill, install the official CLI, and connect to your instance:

npx skills add absolutepraya/marka
npm install --global @absolutepraya/marka
marka auth init
marka whoami

Create an API key under Settings > API Keys in your instance. Enter the instance address and key during marka auth init; the CLI stores its configuration locally with file mode 0600. Installing the skill adds agent instructions; CLI installation and authentication connect it to your library.

See the agent integration guide for unattended setup and REST API access, the CLI reference for commands, or the MCP guide for MCP clients.

How it works

The web app and API handle your library. Background workers fetch page content and screenshots, process assets, update search indexes, and run configured AI tasks.

Marka architecture: web, PWA, extension, CLI, and MCP clients use the web API. The web app and workers share SQLite and asset files. The web app searches Meilisearch; workers index content, render pages with Chrome or Browserless, and optionally call an AI provider.

SQLite and asset files hold the saved library; Meilisearch provides a derived search index. Browser rendering and AI depend on the services enabled for your instance.

Code Responsibility
apps/web Next.js web app and API entry points
apps/workers Crawling, screenshots, indexing, and background processing
packages/trpc, packages/api Application logic, tRPC routers, and REST API routes
packages/db, packages/shared-server Schema, migrations, storage, and shared server infrastructure
apps/cli, apps/mcp, packages/sdk CLI, MCP server, and TypeScript SDK

Develop Marka

Use Node.js 24.18.1 from .nvmrc, pnpm 11.25.0 through Corepack, Git, and a Docker-compatible runtime such as OrbStack on macOS.

Follow the local setup guide to install dependencies, configure the root .env and its symlinks, and run migrations. Once configured:

pnpm dev:start

The launcher starts this workspace's web app and workers, ensures shared local Meilisearch and Browserless are running, and waits for web health and worker readiness. Worktrees keep separate SQLite/assets, web and worker ports, and search namespaces.

Roadmap

Marka Roadmap

Open the editable Excalidraw source

Marka builds on the open-source Karakeep project.

About

Everything you want to come back to. A self-hosted library for bookmarks, watchlists, wishlists, notes, and files.

Topics

Resources

Contributing

Security policy

Stars

12 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages