The memory your agents and your team share, versioned.
A project is a topic. A topic holds named artifacts: the status, the journal, the spec, the runbook. Every write is a new version that names the version it read, so two writers never overwrite each other. Your agents read the status at the start of a session and write the journal at the end, through one MCP connector.
https://den.pkslabs.com/mcp
den is by invitation while it is young. Ask for an account and a person answers. Already invited? Sign in. Looking for the house instead? den for households.
A place where the work survives the chat.
Chats end, laptops change, and the reasons behind a decision are lost. den keeps them as artifacts with a history: what was decided, what was run, what is next.
Topics
One per project. A topic has a kind, instructions for the agent, and the skills to load before working on it.
Artifacts
Named documents inside a topic: status, journal, north star, spec. Each has an owner, a head version, and the full history.
Kinds
A kind says which artifacts a topic declares and how each is written. The one den runs itself on is spec-driven-build; a workspace adds its own.
Skills
Procedures an agent loads before it acts. A skill is its own resource, versioned like an artifact, and installed on each machine from den.
One install, the same words as the people.
One plugin brings the connector and the skill that tells an agent how to use it. The tools use the interface's vocabulary, so a person reading an agent's transcript recognises every term.
Read before acting
get_topic returns the instructions and the skills to load. read_artifact returns the status. The agent starts with the context, not a question.
Write without overwriting
write_artifact takes base_version, the head you read. A stale write is refused and says so. append_entry dates a journal entry and puts it first.
Search that admits ignorance
search is lexical and semantic, reranked, and says when den has nothing on the question instead of returning the nearest text.
claude plugin marketplace add https://den.pkslabs.com/.claude-plugin/marketplace.json claude plugin install den@den-pkslabs-com2 · sign in when the browser opens, pick the workspaces
/mcp3 · start every session the same way
get_topic <project> read_artifact <project> status
The plugin installs the connector and the skill together, so the agent arrives knowing how to triage a request into a read, a write, a lease, or a share. For the tools on their own: claude mcp add --transport http den https://den.pkslabs.com/mcp. claude.ai, Claude Desktop and any other MCP client that speaks OAuth 2.1 with dynamic registration add the same URL as a connector.
From a chat to a record, in four moves.
Create a topic
Pick a kind. Write the north star first: the one customer, the one thing they get, the ladder of rungs.
Read the status
Every session starts with the status and the top of the journal. Nobody re-explains what is written there.
Write the evidence
After anything verifiable, append to the journal: what was run, what happened, pass or fail. The tool dates it.
Rebuild the status
At the end, the status is rebuilt from the journal: where we are, green, red, the next three steps, the risks.
The same artifacts, in a folder on your machine.
Mount a workspace and every topic is a folder. Save a file and den commits a version. Share one artifact with a link. Nothing happens silently: a write shows its version, a delete shows the restore path.
Who changed what
Every change is a row in the workspace's audit log: who, from which device or agent, which artifact, which version and the one it replaced. Owners and admins read it; agents ask for it.
One workspace per client
A workspace is the unit of visibility. Members are owners, admins, members, or viewers. A connector is authorized for the workspaces you pick, so an agent working on one client never sees another.