Dossierdossier.agent964.com

Your agents write the page. Dossier handles the rest.

Agents push folders of plain HTML. Each page takes its theme, layout and components from the folders above it, keeps every person's form answers on the server, opens for anyone you share it with, and has a version agents read instead of the HTML.

Opening a link someone sent you? Sign in with the email they shared it with.

agent964/acme/questionsAcme_layout.htmlDelivery questionsShip datePalletsNotesSend12 Nov18Dock B, after 9 amSaved for sara@acme.comacme/_theme.css_layout.html_components/questions.htmlagent$ dossier push ./acmeagent964/acmepush 12 · 4 filesagent$ dossier readagent964/acme/answers/# answers/ (1 file)sara@acme.com · push 12{"ship":"12 Nov","pallets":18}

How it works

A folder goes in. Answers come back.

  1. 01

    An agent pushes a folder

    Plain HTML, CSS and scripts, published as one push with a message. No build step, and no design system pasted into every page.

    dossier push ./acme agent964/acme

  2. 02

    People open it and answer

    They sign in and see what is shared with them. A page's forms save each person's answers as they send them.

    agent964/acme/questions

  3. 03

    Agents read it back

    The agent reads the page's companion and every answer, or waits for the next one, without parsing HTML.

    dossier read agent964/acme/answers/

01 · The kit

Each page carries only its own content.

Put a _theme.css, a _layout.html and a _components/ folder anywhere in a tree, and every page below uses them; the closest one wins. Dossier composes the page when it is opened, so there is no build step.

Agents write only what is new. One mockup measured at 562 KB carried 29 KB of its own, and the rest was a copied design system. In a tree with a kit, that page is the 29 KB.

agent964/acme/_theme.css_layout.html_components/acme-chart.jsplans/q3.html29 KBq4.html31 KBacme/plans/q3_theme.cssAcme_layout.htmlQ3 plan<acme-chart>q3.html29 KBThe same page, self-contained562 KB

02 · Forms that remember

Each person's answers stay on the server.

A plain <form method="post"> saves one file for each person who sends it. Unsent edits wait in the browser as a draft. Sent answers come back on any device the person signs in from, and they can change or withdraw them.

Pages read and watch that data live through a small page client, so a results page updates as answers arrive.

QuestionsShip date12 NovPallets18SendSent 09:12answers/sara@acme.com.json"ship": "12 Nov""pallets": 18QuestionsShip date12 NovPallets18PHONE · MORNINGON THE SERVERLAPTOP · EVENING

03 · Sharing

Share any folder or page with anyone by email.

Give a person, a team, the whole workspace or anyone the role to read, respond or write. A share on a folder covers everything in it, and roles add up across shares.

A public page opens without signing in; answering its forms still asks them to sign in. A guest sees only what is shared with them.

agent964/acme/questions/index.htmlbrief.pdfanswers/budget/not sharedShare questions/agent964/acmesara@acme.comSsara@acme.comGuest, outside the workspaceRespondDesignTeam, 4 peopleWriteAagent964Everyone in the workspaceReadAnyone with the linkOpens it without signing inRead

04 · Companions

Agents read the companion, not the HTML.

Beside questions.html, a questions.md tells agents what the page is for. dossier read, or the page's link asked with an agent key, returns it, or Markdown made from the page when there is none.

It ends with where the page's answers and comments are, so an agent joining cold learns what a page says and what people did in one read. dossier watch --next waits for the next answer.

FOR PEOPLEquestions.html<main class="q"><h1>Delivery questions<form method="post"><input name="ship"><input name="pallets">FOR AGENTSquestions.md# Delivery questionsAsk for the ship dateand the pallet count.One answer per person.agent$ dossier readagent964/acme/questions.html# Delivery questionsAsk for the ship dateand the pallet count.Data: answers/ (3 files)Comments: 2$ dossier watch --nextagent964/acme/questions/submission answers/lina@acme.com.json

05 · History

Every push is one change you can take back.

A push lands whole or not at all, with its message. People who can write see each page's history, compare any two pushes, and restore a file or a whole folder to how it was.

Deleted files stay restorable for the deployment's retention period, 30 days unless it sets another.

push 10Questionspush 11Pallet countpush 12plan.html deleted--to 11restoreplan.html is back$ dossier restore agent964/acme/plan.html --to 11

And in every tree

  • CommentsThreads on any part of a page, pins on images, and mentions that point a person to it.
  • Watch and webhooksdossier watch and signed webhooks report each submission, comment, mention, share and push.
  • SearchTitles, paths and page text, across everything you can open on the deployment.
  • One-file exportAny page as a single HTML file that opens offline, with a snapshot of its data.
  • Rich pagesMermaid diagrams, highlighted code, maths and diffs come with the base layer.
  • Agent keysEach key acts as its person, and can be held to one tree and to reading.

Self-hosted

Free, MIT licensed, and yours to run.

Dossier runs on Cloudflare: one Worker, D1 and R2. A deployment of your own keeps its own workspaces and people, and its own look: your name, logo, colours and fonts on every screen. Every feature works there.

Dossier on GitHub
The CLI, on this deployment
$ npm i -g @agent964/dossier
$ dossier login dossier.agent964.com
$ dossier push ./site <workspace>/<tree>

Has someone shared a page with you?

Sign in with the email they sent it to. You see everything shared with that address, across workspaces.

Sign in