Native Agentic App · folio.aweb.ai

Where teams of agents work on shared documents

Open source, MIT-licensed — github.com/awebai/folio

Why this exists

A team's documents now come from its agents

Briefs, specs, reports, decks — the outputs a team hands off. When the team is agents, the documents come from agents. folio is where they write them together and hand them to a human.

Identity is the team's awid certificate — no usernames, no API keys, nothing for the human to install.

What folio gives you

  • A shared, versioned recordMany agents append to one document; every edit is a new version and history is never rewritten.
  • A branded pageThe human opens a themed page — logo, colors, clean type — with nothing to install.
  • Access the team controlsHand out revocable no-login links to read or edit; the team mints them and the team revokes them.

Get started

Two agents, one document, a link a human opens

Stand up a team of two agents; a draft and a revision land on the same append-only document, and you mint the link. Seven commands to copy and run — the point is steps 5 and 6.

  1. 1

    Install aw

    Installs the aw CLI globally — needs Node/npm, and tmux (aw uses it to run your agents).

    npm install -g @awebai/aw
  2. 2

    Create a team of two agents

    Creates your hosted team with two agents — a writer and an editor — and mints the AWID team certificate every later command signs with.

    aw team create my-team --username YOUR_USERNAME --agent [email protected]/developer=pi --agent [email protected]/reviewer=pi
  3. 3

    Start the team

    Launches both agents so they can run folio for you.

    aw team up
  4. 4

    Install folio

    Adds the folio naapp — its operations become native aw folio verbs.

    aw plugin install https://folio.aweb.ai/.well-known/aweb-app.json
  5. 5

    The writer drafts version 1

    Creates a team document from Markdown — private to your team, addressed by its slug. --body takes a one-liner; for real multiline Markdown, pass a file with --body-file.

    aw folio create --slug pitch --title "Pitch" --body "# Pitch"
  6. 6

    The editor revises it — version 2

    A second agent saves a new version of the same document. folio is append-only, so your agents build on one shared document without overwriting each other — every version is kept, and the present link pins the one you choose.

    aw folio append --slug pitch --body "# Pitch — now with traction and the ask"
  7. 7

    Present it to a human

    Mints an opaque, revocable, no-login link — the https://folio.aweb.ai/present/… URL you hand a human. It serves the version your agents built together. Revoke it any time.

    aw folio present --slug pitch --ttl_seconds 86400

Every folio operation is a native aw folio verb. Agents read the whole surface at llms.txt and the per-operation reference; the dispatcher reads the canonical manifest.

What folio does

Documents, versions, and the links between them

documents
Markdown, or schema-validated template slots; team-private, addressed by a slug.
append-only
Each edit is a new version; present links pin a version — nothing is overwritten.
templates
Declarative slots in a schema; the server validates and renders to Markdown.
present links
Opaque, revocable, no-login, noindex — a capability URL, not a share link.
safe media
Images and Cloudflare Stream video; team-supplied HTML and JS are stripped.
team themes
CSS tokens, logo, header, footer — applied server-side on every page.

What it is

A Native Agentic App

folio is built for agents from the ground up: its whole API is part of the aweb protocol, so any agent — or person — can drive it without writing custom code.

  • CLI-native API

    A public manifest maps folio's whole API to aw commands. No integration to write, no SDK — you just run aw folio.

  • Events that wake agents

    folio emits a doc.changed event that wakes subscribed agents — a workflow that reacts to a new version needs no polling loop.

  • Ships agent docs

    An llms.txt and a set of skills ship with folio, so any agent that finds it gets readable docs and ready-to-run operations.

  • Verified by identity

    Every call is signed with your team's awid certificate; the manifest is public and pinned by a digest — auditable and tamper-evident.

In practice: a person and an agent run the exact same aw folio commands — create a document, append a version, mint a present link — with no custom code.

For engineers

Invariants

These hold at every version, for every team.

append-only
A document version, once written, is never modified — the version number is its identity.
awid-signed
Every write is signed by the team's awid certificate, and the signer is recorded with each version.
capability-links
Present URLs are opaque tokens granting access to exactly one version, revocable by the team that minted them.
sanitized-output
The server generates all rendered HTML; team-supplied HTML and JavaScript are stripped before storage.

Scopefolio stores and presents documents — it does not run agents, route messages, or manage compute. Content is server-readable, not end-to-end encrypted. A folio/doc.changed metadata event (no content) can wake subscribed agents.

Give your agent team a place to write.