non-convex-labs / laravel-commonplace
A personal markdown knowledge vault for Laravel — wikilinks, version history, semantic search, and MCP for Claude Code.
Package info
github.com/non-convex-labs/laravel-commonplace
pkg:composer/non-convex-labs/laravel-commonplace
Requires
- php: ^8.4
- elgigi/commonmark-emoji: ^2.0
- illuminate/contracts: ^13.0
- laravel/mcp: ^0.7.0
- league/commonmark: ^2.8
- spatie/laravel-package-tools: ^1.16
- symfony/yaml: ^8.0
- tempest/highlight: ^2.17
Requires (Dev)
- aws/aws-sdk-php: ^3.300
- larastan/larastan: ^3.9
- laravel/pint: ^1.18
- orchestra/testbench: ^11.0
- phpunit/phpunit: ^12.0
Suggests
- aws/aws-sdk-php: Required to use the Bedrock embedding driver (Amazon Titan Text Embeddings v2).
- laravel/sanctum: Required by the default `auth:sanctum` middleware on the MCP route group. Install if you keep the default; otherwise override COMMONPLACE_MCP_MIDDLEWARE.
- dev-main
- v0.1.0
- dev-fix/update-note-title-regen
- dev-feat/voyage-backoff-and-partial-progress
- dev-feat/history-view
- dev-feat/share-api
- dev-fix/reindex-picks-up-stale-embeddings
- dev-fix/public-route-prefix-override
- dev-fix/public-view-strip-auth-chrome
- dev-fix/tag-orphan-prune-on-detach
- dev-docs/voyage-rate-limit-behavior
- dev-docs/note-title-precedence
- dev-docs/reindex-cooldown-docs
- dev-ci/pint-auto-fix-workflow
- dev-docs/scenario-ui-link-contract
- dev-docs/clarify-noteversion-create-semantics
- dev-fix/migrations-autoload
- dev-fix/mcp-path-enumeration-error-collapse
- dev-fix/mcp-tools-list-pagination
- dev-docs/add-scenarios-folder
- dev-docs/voice-rewrite
- dev-docs/readme-rewrite
- dev-pr-c/mcp-auth-wiring
- dev-pr-b/wikilink-rewrite-on-move
- dev-pr-a/visibility-enum
This package is auto-updated.
Last update: 2026-05-18 01:28:33 UTC
README
A database-backed personal knowledge vault for Laravel. You get wikilinks, version history, semantic search, and an MCP server so Claude Code, Cursor, and Zed can read and write your notes. Same database as your app, same auth, same backup.
Quick look
Notes are Eloquent models. The Commonplace facade owns the writes, the wikilink graph, and search:
use NonConvexLabs\Commonplace\Facades\Commonplace; Commonplace::createNote( path: 'meetings/q2-planning', content: 'Discussed [[roadmap-2026]] and [[hiring-plan]].', tags: ['meeting'], visibility: 'private', owner: $user, ); Commonplace::getBacklinks('roadmap-2026', $user); Commonplace::semanticSearch('q2 planning topics', $user);
Set COMMONPLACE_MCP_ENABLED=true and the same vault is reachable to any MCP-compatible AI client, scoped to the authenticated user.
Install
composer require non-convex-labs/laravel-commonplace
Full setup lives in docs/. That covers migrations, trait wiring, embedding driver, and MCP transport.
Why a database vault, not a folder of .md files?
Most knowledge-vault tools are standalone apps backed by a folder of files. Sync, plugins, and auth get bolted on after the fact. This package flips that around. Notes are rows in your existing Laravel database. They're queryable by SQL, transactional, joinable, and gated by whichever guard your app already runs. You don't host a second silo, you don't run a file watcher, you don't manage separate API keys, and you don't hit "vault opened in another window" races.
See docs/design.md for the full comparison against Obsidian, Logseq, Foam, and Dendron, plus the tradeoffs that come with it.
Status
Pre-1.0. APIs may shift between minor versions until 1.0 ships.
License
MIT. See LICENSE.