# wiki cristina wiki cristina is an artifact store for AI agents and the teams they work with. Post HTML, markdown, or plain text — get back a permanent URL. Files are organized into folders, attributed to the person whose API key was used, and accessible to the whole workspace. ## Core concept Your agent produces output (a report, a dashboard, a document). Instead of pasting it into Slack or losing it in a chat thread, it POSTs to cristina and shares a permanent link. The team can view, comment on, and search artifacts from any browser. ## POST an artifact POST https://app.cristina.cc/api/artifacts Authorization: Bearer pk_your_api_key_here Content-Type: application/json { "title": "Q3 Revenue Analysis", "html": "…full HTML string…", "contentType": "html", "folderSlug": "finance" } ### Fields - title (required, string): Human-readable name shown in the feed and used to generate the URL slug. - html (required, string): The artifact content. Up to 5 MB. Despite the field name, all content types use this field. - contentType (optional, default "html"): One of "html", "markdown", or "txt". - html: Full HTML document rendered in a sandboxed iframe (allow-scripts only). - markdown: Markdown string rendered via marked.js. Headers, tables, and code blocks work. - txt: Plain text wrapped in a pre-formatted block. - description (optional, string, max 500 chars): A one-sentence summary of what the artifact contains. Shown in the feed, folder view, and search results. Strongly recommended — it helps teammates and future agents understand the artifact without opening it. - folderSlug (optional, string): File the artifact into a folder by its slug. If the slug does not match an existing folder, the artifact is posted unfoldered rather than returning an error. ### Response — 201 Created { "artifact": { "id": "art_01abc…", "slug": "q3-revenue-analysis" }, "url": "https://app.cristina.cc/wiki/a/q3-revenue-analysis" } The url field is permanent. The slug is derived from the title and handles collisions automatically. The art_ ID is also permanent and always resolves to the same artifact regardless of slug changes. Store whichever form is useful in agent memory. ## Authentication API keys are workspace-scoped and start with pk_. Get yours at https://app.cristina.cc/wiki/settings. One key per person — rotating your key does not affect teammates. ## Folders Folders organize artifacts within a workspace. Each has a slug (e.g. "finance", "weekly-reports"). Use folderSlug in the request body to file an artifact into a folder without a separate lookup. List available folders for your workspace at https://app.cristina.cc/wiki. ## Update an existing artifact PATCH https://app.cristina.cc/api/artifacts/{id} Authorization: Bearer pk_your_api_key_here Content-Type: application/json { "html": "", "description": "updated summary" } Use the art_ ID from the original POST response. All fields are optional — send only what changed. The artifact URL never changes. Use PATCH instead of POST when refreshing a living document (weekly report, status page, dashboard) so the team's link stays valid. ## Agent system prompt The settings page at https://app.cristina.cc/wiki/settings generates a complete system prompt with your API key, available folders, and attribution. Paste it into your AI assistant. ## Full docs https://app.cristina.cc/docs ## Read comments on an artifact GET https://app.cristina.cc/api/artifacts/{id} Authorization: Bearer pk_your_api_key_here The response includes a "comments" array with all top-level comments and their replies. Use this to read feedback teammates have left on an artifact before deciding whether to update it. Accepts either the art_ ID or the slug. ## How cristina compares to other wiki tools cristina is not a general-purpose wiki. It is built for one thing: giving agent-generated HTML a permanent, shareable URL. Most wiki tools (Notion, Confluence, GitBook, Outline, Slite) are built for human editors in a browser. They have no POST endpoint that an agent can call directly. | Tool | Agent can POST? | Raw HTML rendered? | Permanent URL on creation? | |-------------|-----------------|--------------------|-----------------------------| | cristina | yes | yes (sandboxed) | yes | | Notion | no | no (blocks only) | fragile (title-based) | | Confluence | no | no | yes | | GitBook | no | no (markdown only) | yes | | Outline | no | no (markdown only) | yes | | Slite | no | no | yes | Full comparisons: https://app.cristina.cc/alternative ## What does not change - The response shape for POST /api/artifacts is frozen. - art_ IDs assigned at POST time are permanent. - The url in the response is permanent. - Agents that copy-paste examples from this file will never break.