mothermachine

Browse / Notes and knowledge

linkding

Minimal self-hosted bookmark manager with LD_* env config and a documented REST API.

AdaptableOperable ProductWeb app Deterministic PythonJavaScript API License: MIT

linkding is a Django bookmark manager built to be small, fast, and Docker-first: tags, markdown notes, read-it-later, archiving to local HTML or the Internet Archive, sharing, and browser extensions. Configuration is entirely LD_* environment variables, and the REST API with token auth covers bookmarks, assets, tags, and bundles.

Use it when
  • you want a bookmark service on a Raspberry Pi that an agent can post links to with a token
  • you left Pinboard or del.icio.us and want tags, notes, and archives without a heavy stack
Gotchas
  • Single-maintainer project that declines features outside its scope (README)
  • Local HTML archiving requires the single-file sidecar image variant (linkding:latest-plus)
  • Managed hosting on linkding.link is third-party (not a Builder edition)

Last activity Sep 3, 2026. Fit: adaptable 3, operable 3.

Editions

Free · Free open source

  • Clonegit clone https://github.com/sissbruecker/linkding
  • ImageContainer

For agents: JSON · Markdown

Adaptable: what is yours to change

Make it yours

Config only20 things to edit

.env.sample and docker-compose.yml are the whole surface. LD_SUPERUSER_NAME and LD_SUPERUSER_PASSWORD create the first user; LD_DB_ENGINE and LD_DB_* switch to Postgres; LD_ENABLE_AUTH_PROXY with LD_AUTH_PROXY_USERNAME_HEADER puts it behind your SSO; LD_DISABLE_BACKGROUND_TASKS, LD_DISABLE_URL_VALIDATION, and LD_CONTEXT_PATH tune behavior.

Env vars
LD_SUPERUSER_NAME LD_SUPERUSER_PASSWORD LD_HOST_PORT LD_HOST_DATA_DIR LD_CONTEXT_PATH LD_DB_ENGINE LD_DB_HOST LD_DB_PORT LD_DB_DATABASE LD_DB_USER LD_DB_PASSWORD LD_ENABLE_AUTH_PROXY LD_AUTH_PROXY_USERNAME_HEADER LD_AUTH_PROXY_LOGOUT_URL LD_DISABLE_LOGIN_FORM LD_DISABLE_BACKGROUND_TASKS LD_DISABLE_URL_VALIDATION LD_CSRF_TRUSTED_ORIGINS
Config files
.env docker-compose.yml
Prompt files
none
Accounts you need
none

Source

Operable: what an agent can drive

Interface

OfficialAPIpublished by the builderlocal

How an agent can drive an Operable Listing, in five levels: native (built for the agent as the primary interface), official (the Builder ships an agent interface), wrapped (a third party wraps the software's API), config (an agent can only drive it by editing files), gui (screen control only). An interface is official only when it is published by the same organization that ships the software. GUI-level Listings are allowed and sorted last.

Docs
linkding.link/api/

Reach

Partial coverage. 8 of 10 jobs reachable through the stated interface.

JobThrough the interfaceEvidence
Create, update, and delete bookmarksReachablePOST/PUT/PATCH/DELETE /api/bookmarks/ (docs/src/content/docs/api.md)
Search and list bookmarksReachableGET /api/bookmarks/ with query, GET /api/bookmarks/check/?url=
Archive and unarchiveReachablePOST /api/bookmarks/<id>/archive/ and /unarchive/
Tag bookmarksReachableGET/POST /api/tags/ and tag_names on bookmarks
Bundles (saved filters)ReachableGET/POST/PUT/PATCH/DELETE /api/bundles/
Store and download HTML snapshotsReachable/api/bookmarks/<id>/assets/ with upload and download
Share bookmarks with users or guestsReachableshared field on the bookmark resource
Markdown notes and read-it-laterReachablenotes and unread fields on the bookmark resource
Import and export Netscape HTMLNot reachablesettings UI only; no API endpoint
User administrationNot reachableDjango admin panel; only GET /api/user/profile/ is exposed

Code stack

Languages
PythonJavaScript
Frameworks
Django
Package manager
uv
Database
SQLitePostgreSQL
Hosting target
docker
Built
Human-written (recorded, never ranked)

Evidence and confidence

FieldWhere it was seenConfidence
formFactorREADME: Django web app, Docker install95%
executionModelno model anywhere in the stack95%
operabilitydocs/src/content/docs/api.md in the repo, published at linkding.link/api95%
effort.env.sample LD_* names; docker-compose.yml95%
editionsMIT; no paid edition; community managed hosting listed separately95%
activepushedAt 2026-09-03–
provenance2019 project, no agent markers60%
reach90%

Open questions

  • chickenzord/linkding-mcp (15 stars, 2026-05-25) is the only wrapper; note as runner-up if the Curator prefers an MCP entry point

Sources