Concepts
Workjournal is shared memory for your project — one journal that every teammate and every AI agent reads and writes. Seven concepts make up the whole model. They nest like this:
Workspace ← your account-level container, carries the tier
└── Journal ← one per project; the unit of sharing
├── Entries ← the records themselves, numbered #1, #2, #3…
├── Prompt ← writing instructions agents follow for this journal
├── Tags ← optional structured labels on entries
└── Contributors ← the people (and their agents) with access
Workspaces
The top-level container. You name your workspace at sign-up, and everything you own lives inside it: journals, tags, prompts, and your subscription.
- Every workspace has a URL-friendly slug that appears in links, CLI arguments, and MCP tool inputs —
app.workjournal.pro/acme/.... - The workspace carries the tier, so limits and paid features apply to everything inside it.
- One workspace per user today. You can still work with any number of people — sharing happens at the journal level, not the workspace level.
Journals
A journal is the unit of work — and the unit of sharing. The intended shape: one journal per project, written to by everyone (and every agent) working on that project.
- Journals live inside a workspace and have their own slug:
acme/engineering. - The person who creates a journal owns it and manages access.
- Every journal has a prompt that tells agents how its entries should be written.
- Journals can optionally be made public, readable by anyone with the link.
Entries
Entries are the records — what was done, what was decided, and why. They’re written mostly by AI agents at the end of a working session, and read back by the next agent (or teammate) who picks the work up.
- Entries are numbered per journal with a simple index:
#1,#2,#3… That’s how you address them everywhere — “show me entry #42”. - An entry has a title (for scanning), a summary (what search and “catch me up” retrieval use), and a body (the full markdown record: decisions, rationale, trade-offs, dead ends).
- Entries record which client wrote them — so you can tell a teammate’s Claude session from your own CLI.
- Every journal is searchable by keyword; paid tiers add semantic search that finds entries by meaning, not just matching words.
Addresses
Every workspace, journal, and entry has a short, canonical name you can paste anywhere — a chat message, a commit body, a ticket:
| Address | Names |
|---|---|
wj:acme | the workspace acme |
wj:acme.engineering | the journal engineering in it |
wj:acme.engineering#42 | entry 42 of that journal |
The CLI takes an address wherever it takes the slugs spelled out, so workjournal entries get wj:acme.engineering#42 and workjournal entries get acme engineering 42 do the same thing. Your AI assistant uses addresses to cite entries back to you, and you can paste one back to point it at something specific.
Addresses survive deleting other entries — numbers are never reused or shifted. They do not survive renaming a workspace or journal, the same way a web link wouldn’t.
Prompts
A prompt is the journal’s writing instructions — the structure, voice, and sections agents follow when they compose an entry. Agents fetch the prompt before writing, so every entry in a journal comes out consistent no matter which agent (or whose agent) wrote it.
- Every journal has a prompt. Free journals use the system default — a sensible general-purpose instruction set.
- Custom prompts (Plus) — tailor the prompt per journal: one custom prompt for each journal, shaped to that project’s needs.
- Prompt templates (Pro, coming soon) — define reusable prompts once at the workspace level and select them across journals.
Tags
Tags are an optional, structured vocabulary for entries — decision, blocker, release, whatever fits your project.
- Tags are defined once per workspace, then assigned to the journals where they make sense. Entries can only use tags assigned to their journal — a closed vocabulary, so agents can’t invent near-duplicate labels that poison filtering.
- Use them to slice a timeline: show only decisions, only incidents, only release notes.
- Tags are a paid feature (Plus and up).
Attachments
Attachments are files — images and PDFs — kept alongside a journal’s entries.
- Upload an image or PDF (up to 5 MiB each) and link it to any entry; embed images inline in the entry body, or attach a file from the editor.
- Files live in the journal: a dedicated Attachments tab lists them with the entries that reference them. Unlinking a file from an entry keeps it in the journal; deleting removes it everywhere.
- Public journals expose their attachments publicly, just like their entries.
- Storage is metered per workspace by tier — Free 0.5 GB, Plus 2 GB, Pro 5 GB. Available from every interface: web, CLI, and MCP (see the command reference).
Contributors
Contributors are the people with access to a journal — and through them, their AI agents.
- The journal’s creator is its owner: they invite and remove contributors, rename the journal, and control sharing.
- Everyone else is a contributor: they read and write entries like the owner does, and can see who else is on the journal.
- Invitations go out by email. Accepting one adds the journal to the recipient’s “shared with me” list — it stays in the owner’s workspace.
- Access is binary today: you’re on the journal or you’re not. Per-contributor permissions are on the roadmap.
Tiers
Tiers are subscription plans, set at the workspace level — every journal in a workspace gets the workspace’s tier.
- Free covers the core loop: journals, entries, sharing, keyword search, and export.
- Paid tiers raise the caps (journals, entries per journal, contributors per journal) and unlock features like tags, custom prompts, semantic search, and priority support.
- When you hit a cap or a gated feature, the API says so explicitly — agents see a clear error rather than silent truncation.
Current plans, prices, and limits live on the pricing page.
Where to next
- Get Started — connect your AI client to Workjournal.
- Skill Commands — the
/workjournalcommand for skill-capable agents. - CLI Commands — the full terminal reference.
- MCP Server — for clients that speak MCP.