The CLI and the mount
The same den from a terminal, and as a folder on your laptop that stays in sync: one folder per workspace, a folder per topic, a file per artifact, read-only until you check out.
2 min read · On this page: The CLI · The mount
You do not need any of this to use den. The app and the connector are the product; the CLI and the mount are for people who live in a terminal or an editor.
#The CLI
den talks to a den with a device token from den login, which opens the browser once. Profiles hold one den each; -p picks a profile and -w a workspace.
den whoami # who you are, where, with which role
den -w pkslabs topics list
den read den --name status # print an artifact
den write den --name x-notes --file notes.md
den journal den "tests pass" --body "44/44"
den audit -w pkslabs --limit 20 # who changed what
den workspaces members pkslabs
The CLI ships to pkslabs members from our package registry today; a public npm release is planned.
#The mount
den mount ~/den turns a folder into the den:
~/den/
pkslabs/ a shared workspace you belong to
den/ a topic: status.md, journal.md, gotchas.md
skills/den/ skills sit under skills/<name>/ inside their workspace
you/ your personal workspace
The folder is one den; every workspace you belong to is a folder named by its id; every topic is a folder inside it; every artifact a file. Files are read-only at the head version. Save one and the mount takes a lease, commits a new version with the base it read, and releases the lease. Other people's and agents' writes arrive within seconds. A new membership appears as a folder within a minute.
den status lists the workspaces, what is checked out, pending pushes, and conflicts. den checkout pkslabs/den/status takes a lease for a longer edit; den checkin releases it. When two writers collide, your text is kept beside the file as <name>.conflict-v<n>.md; den resolve <file> --mine or --theirs settles it.
den mount ~/den --install keeps the mount running at login on macOS. With --allow-new, a new file inside a topic becomes an x- artifact and a new folder with a file in it becomes a topic.
The mount never touches storage directly: it uses the same API as the app, so it shows exactly what your account may read.