Documentation

One publishing loop. Four ways in.

This is the shipped v1 interface contract: humans upload or paste, agents use REST or MCP, and hosted and self-host operators run the same versioned shapes.

Human quickstart

Upload, render, share.

  1. 1
    Create a drive

    Sign in, name the workspace, and keep the default private posture.

  2. 2
    Upload or paste

    Markdown and HTML render directly. PDFs get bounded, text-first previews. DOCX and PPTX get bounded, text-first structural previews for headings, paragraphs, line breaks, simple tables, and ordered slides, while the immutable original remains available as a safe download. PDF links, actions, attachments, embedded media, and complex layout never enter the preview.

  3. 3
    Choose the audience

    Share with named people, groups, a private capability link, or an explicitly moderated public page.

REST API

Publish with a scoped identity.

REST lives under /api/v1. Mutations accept an idempotency key and failures return a stable problem shape with a request ID.

curl https://your-yobby.example/api/v1/artifacts \
  -H 'Authorization: Bearer ybag1.••••' \
  -H 'Idempotency-Key: publish-run-42' \
  -F 'metadata={"title":"Q2 summary","filename":"q2-summary.md","projectContext":"Finance Q2"};type=application/json' \
  -F 'content=@q2-summary.md;type=text/markdown'

A publish-only agent can create this artifact. It cannot list, render, inspect, or download artifacts unless separately given artifact:list, artifact:read, or artifact:download. The same scoped credential can use the corresponding REST GET resources as well as MCP.

MCP

Give the workflow a publishing tool.

MCP uses the same command handlers, policy engine, idempotency store, and audit pipeline as REST. Streamable HTTP clients must send an Accept header containing both application/json and text/event-stream; Yobby selects a stateless JSON response and retains no MCP session.

publish_artifactartifact:publish

Create a new artifact and immutable first version, optionally filing it with a normalized project context.

create_artifact_versionartifact:version

Add an immutable version without changing its artifact identity, project, tags, or sensitivity.

list_artifactsartifact:list

Page through decision-ready metadata in the credential-bound workspace.

get_artifactartifact:read

Inspect one freshly authorized artifact without downloading its body.

share_artifactartifact:share (+ artifact:download when delegated)

Create one revocable capability link with a stable retry key. Delegating original-byte downloads also requires current download authority.

get_filing_statusfiling:read + artifact:read

Read the explained state of the agent's own publish.

Self-host

One image. Four isolated services.

One Compose command starts the application, networkless malware scanner, restricted signature updater, and networkless image decoder from the same versioned image. The application uses SQLite and encrypted local object storage under /databy default. Production configuration requires a public URL, separate session, agent-credential and share-link HMAC secrets, a root encryption key, and a data directory. Generate every secret independently; never reuse one key across those boundaries.

YOBBY_PUBLIC_URL=https://drive.example.com
YOBBY_SESSION_SECRET=••••
YOBBY_AGENT_CREDENTIAL_SECRET=••••
YOBBY_SHARE_LINK_SECRET=••••
YOBBY_ROOT_ENCRYPTION_KEY=••••
YOBBY_ROOT_KEY_ID=self-host-root
YOBBY_ROOT_KEY_VERSION=1
YOBBY_DATA_DIR=/data

Optional adapters select PostgreSQL, S3-compatible storage, external KMS/BYOK, OIDC, SMTP, and an OpenAI-compatible librarian provider.

Librarian

Invite the intelligence separately.

Publishing, rendering, versioning, and sharing work before the librarian joins. An owner deliberately invites Yobby, chooses an opt-in trial brain or supplies an OpenAI-compatible endpoint, and sees the resulting member-grade scope.

Read the AI access boundary