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.
- 1Create a drive
Sign in, name the workspace, and keep the default private posture.
- 2Upload 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.
- 3Choose 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:publishCreate a new artifact and immutable first version, optionally filing it with a normalized project context.
create_artifact_versionartifact:versionAdd an immutable version without changing its artifact identity, project, tags, or sensitivity.
list_artifactsartifact:listPage through decision-ready metadata in the credential-bound workspace.
get_artifactartifact:readInspect 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:readRead 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=/dataOptional 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