Managed Kreuzberg document intelligence at api.kreuzberg.dev.

MITAuto-check passedBackend & APIs

Install Kreuzberg Cloud

skills CLI
$ npx skills add hashgraph-online/awesome-codex-plugins --skill kreuzberg-cloud -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install hashgraph-online/awesome-codex-plugins kreuzberg-cloud --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/hashgraph-online/awesome-codex-plugins.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/kreuzberg-dev/plugins/plugins/kreuzberg-cloud/skills/kreuzberg-cloud .claude/skills/kreuzberg-cloud && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
kreuzberg-cloud
GitHub stars
1.3k
Token cost
~2.7k tokens
SKILL.md length
886 words
Files
1
Skills in repo
714
Repo updated
First seen
Licence
MIT

At a glance

Managed Kreuzberg document intelligence at api.kreuzberg.dev.

  • Works in 3 steps: The TypeScript SDK (@kreuzberg/cloud) —… → The Python SDK (kreuzberg-cloud-sdk) —… → Raw curl — every example below shows the…
  • The user wants cloud extraction with webhook delivery
  • SKILL.md covers v0.1.0 limitation, When cloud vs local, Getting an API key and Authentication, plus 7 more sections
  • Calls curl and jq; reaches api.kreuzberg.dev; needs KREUZBERG_API_KEY

What it does

Kreuzberg Cloud is an agent skill from hashgraph-online/awesome-codex-plugins. Managed Kreuzberg document intelligence at api.kreuzberg.dev. Use when the user wants cloud extraction with webhook delivery, presigned uploads for large files, document versioning and diffing, sandbox keys, or per-project usage tracking — instead of running the local kreuzberg CLI. Covers authentication, the 12 REST endpoints, request/response shapes, error model, and SDK options.

Its SKILL.md is about 2.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Backend & APIs, covering Webhooks and REST APIs. It works with Azure AI Document Intelligence. The repository describes itself as: A curated list of awesome OpenAI Codex / ChatGPT plugins, skills, and resources. The 1 Codex Marketplace. See live plugins at: https://hol.org/plugins/best-codex-plugins. The licence is MIT.

When your agent uses it

  • The user wants cloud extraction with webhook delivery
  • Presigned uploads for large files
  • Document versioning and diffing
  • Per-project usage tracking — instead of running the local kreuzberg CLI

Example prompts

  • “/kreuzberg-cloud”

Requirements

  • Python 3
  • A credential in KREUZBERG_API_KEY

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. The TypeScript SDK (@kreuzberg/cloud) — ESM, tree-shakable, generated
  2. The Python SDK (kreuzberg-cloud-sdk) — sync + async, from_sandbox()
  3. Raw curl — every example below shows the curl form first.

What it can do on your machine

Read from SKILL.md and the folder at commit 9e7b281. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • curl
    • jq

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • api.kreuzberg.dev

    Also links to:

    • kreuzberg.dev
    • docs.kreuzberg.cloud
    • npmjs.com
    • pypi.org

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • KREUZBERG_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Kreuzberg Cloud loads about 2.7k tokens when it runs. Until then it costs about 100 tokens; SKILL.md has 886 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~100
When it runs · the whole SKILL.md, loaded when a task matches
~2.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from hashgraph-online/awesome-codex-plugins at commit 9e7b281, republished under its MIT licence (© hashgraph-online). 886 words, ~2,747 tokens.

Download SKILL.mdSave it as .claude/skills/kreuzberg-cloud/SKILL.md (or your agent's skills folder).
name
kreuzberg-cloud
description
Managed Kreuzberg document intelligence at api.kreuzberg.dev. Use when the user wants cloud extraction with webhook delivery, presigned uploads for large files, document versioning and diffing, sandbox keys, or per-project usage tracking — instead of running the local kreuzberg CLI. Covers authentication, the 12 REST endpoints, request/response shapes, error model, and SDK options.
license
MIT
metadata.author
kreuzberg-dev
metadata.version
0.1.0
metadata.repository
https://github.com/kreuzberg-dev/kreuzberg-cloud

Kreuzberg Cloud

Kreuzberg Cloud is the managed extraction API hosted at https://api.kreuzberg.dev. It exposes the same Rust extraction engine as the local kreuzberg CLI, with two extras: jobs are asynchronous (webhook or polling delivery) and large files go through presigned uploads instead of in-band base64.

Use this skill when writing code that:

  • Hits api.kreuzberg.dev directly via HTTP.
  • Uses the @kreuzberg/cloud (npm) or kreuzberg-cloud-sdk (PyPI) SDKs.
  • Configures webhooks, sandbox keys, or usage queries.

v0.1.0 limitation

The kreuzberg-cloud plugin v0.1.0 ships skills only — no MCP server. The kreuzberg-cloud CLI binary that hosts the MCP server lands in plugin v0.2.0. Until then, prefer one of:

  1. The TypeScript SDK (@kreuzberg/cloud) — ESM, tree-shakable, generated from the OpenAPI 3.1 spec.
  2. The Python SDK (kreuzberg-cloud-sdk) — sync + async, from_sandbox() helper for evaluation.
  3. Raw curl — every example below shows the curl form first.

When cloud vs local

SituationUse
You already have the kreuzberg CLI installed and the file is on diskLocal (kreuzberg plugin)
File is on a remote URL or in S3 / GCSCloud
Need OCR for languages the local Tesseract install doesn't haveCloud
File is larger than ~50 MBCloud (presigned uploads)
Want webhook delivery rather than blocking the callerCloud
Batch of mixed documents with shared optionsEither; cloud parallelizes server-side
No network access, air-gapped environmentLocal
Evaluating before committing to installCloud sandbox key

Getting an API key

Three options, in order of preference for production:

  1. Production key — sign up at https://kreuzberg.dev/cloud, mint a key from the dashboard. Format: sk_live_*.

  2. Sandbox key — no signup, 24-hour TTL, 50-page quota, rate-limited to 10 keys per IP per 24 hours. Format: sk_sandbox_*. See the sandbox-keys skill.

  3. Local ~/.kreuzberg/cloud.toml — for shell sessions, put the key in:

    toml
    # ~/.kreuzberg/cloud.toml
    api_key = "sk_live_..."

The plugin's SessionStart hook checks KREUZBERG_API_KEY env var first, then ~/.kreuzberg/cloud.toml, and emits a setup reminder if neither is present.

Authentication

Every request — except POST /v1/sandbox/key — uses a Bearer token:

bash
curl https://api.kreuzberg.dev/v1/usage \
  -H "Authorization: Bearer $KREUZBERG_API_KEY"

Both sk_live_* and sk_sandbox_* go in the same header. The server resolves project context from the key.

Base URL and versioning

The 12 endpoints

Twelve operations across seven tag groups:

health (2)
MethodPathPurpose
GET/healthzLiveness — returns 200 if the process is up.
GET/readyzReadiness — returns 200 only when downstream deps are healthy.

Neither requires auth. Use /readyz for uptime monitors and /healthz for load-balancer health checks.

extract (1)
MethodPathPurpose
POST/v1/extractSubmit one or more documents (or URLs) for extraction.

Accepts application/json (base64 documents) or multipart/form-data (binary file parts). Returns 202 Accepted with job_ids (extraction jobs) and crawl_job_ids (URL-crawl jobs). Pair with GET /v1/jobs/{id} to retrieve results — or supply a webhook block to receive them asynchronously. See the offloading-extraction skill.

jobs (1)
MethodPathPurpose
GET/v1/jobs/{id}Get the current status and (if terminal) result of a job.

Accepts both extraction job IDs and crawl job IDs. Response shape varies: extraction jobs return JobResponse, crawl jobs return CrawlJobResponse. See the tracking-cloud-jobs skill.

Show full SKILL.md (372 more words)Show less
documents (4)
MethodPathPurpose
GET/v1/documents/{document_id}Latest version of a document with its extraction result.
GET/v1/documents/{document_id}/diff?from={v}&to={v}Compute a diff between two versions (sync, async fallback on budget).
GET/v1/documents/{document_id}/diff/{diff_job_id}Poll the status of an async diff job.
GET/v1/documents/{document_id}/versionsList all versions of a document (paginated).

For applications that re-process the same document over time. Each extraction returns a document_id that's stable across versions.

uploads (2)
MethodPathPurpose
POST/v1/uploads/presignGenerate per-file presigned PUT URLs.
POST/v1/uploads/confirmConfirm the uploads and start processing.

Three-step flow for files larger than ~50 MB: presign → PUT to storage → confirm. See the presigned-uploads skill.

sandbox (1)
MethodPathPurpose
POST/v1/sandbox/keyMint an ephemeral sandbox API key.

24-hour TTL, 50-page quota, 10 keys per IP per 24 hours. No auth required. See the sandbox-keys skill.

usage (1)
MethodPathPurpose
GET/v1/usagePer-project usage statistics and remaining quota.

Accepts optional start and end ISO-8601 query params. Defaults to the current calendar month. See the managing-cloud-usage skill.

Key request / response shapes

ExtractJsonRequest
json
{
  "documents": [
    {
      "filename": "invoice.pdf",
      "mime_type": "application/pdf",
      "data": "<base64>"
    }
  ],
  "urls": [
    { "url": "https://example.com/docs" }
  ],
  "options": {
    "extraction_config": {
      "output_format": "markdown",
      "ocr": { "backend": "tesseract", "language": "eng" }
    }
  },
  "crawl_config": {
    "max_depth": 2,
    "max_pages": 50,
    "stay_on_domain": true
  },
  "webhook": {
    "url": "https://example.com/webhook",
    "secret": "shared-hmac-secret",
    "metadata": { "request_id": "abc123" }
  }
}

Either documents or urls is required (or both). webhook, options, and crawl_config are optional.

ExtractResponse (202)
json
{
  "job_ids": ["550e8400-e29b-41d4-a716-446655440000"],
  "crawl_job_ids": ["660e9400-f39c-51e5-b827-557766551111"],
  "status": "pending"
}
JobResponse (200)
json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "filename": "invoice.pdf",
  "status": "completed",
  "created_at": "2025-12-21T10:00:00Z",
  "processing_time_ms": 1234,
  "result": {
    "content": "Invoice total: $1,234.56",
    "mime_type": "text/markdown",
    "tables": [],
    "images": [],
    "metadata": { "title": "Invoice #12345" }
  }
}
JobStatus enum
text
awaiting_upload | pending | processing | chunking | aggregating
                | completed | partial_success | failed | cancelled

Terminal states: completed, partial_success, failed, cancelled. Stop polling when any of those appears.

UsageResponse (200)
json
{
  "period_start": "2026-05-01",
  "period_end": "2026-06-01",
  "total_pages": 5432,
  "total_documents": 87,
  "total_failed": 2,
  "quota_limit": 100000,
  "quota_remaining": 94568,
  "by_mime_type": {
    "application/pdf": { "documents": 65, "pages": 3200, "failed": 1 }
  }
}

Error model

All errors are JSON with at least an error string field. Status codes follow REST conventions:

StatusMeaningTypical cause
400Bad requestMissing required field, malformed body, invalid UUID.
401UnauthorizedMissing or invalid Authorization header.
404Not foundJob / document ID doesn't exist in this project.
429Rate limitedSandbox-key IP throttle or per-key quota.
500Server errorDatabase failure, worker crash — retry with backoff.
503Service unavailableDownstream dep unhealthy — retry.

The SDKs surface these as typed exceptions: AuthError, ValidationError, NotFoundError, RateLimitError (carries retry_after), ServerError, TimeoutError, all extending KreuzbergCloudError (Python) / KreuzbergError (TypeScript).

Concrete examples

Sandbox onboarding (no signup)
bash
# Mint an ephemeral key.
curl -X POST https://api.kreuzberg.dev/v1/sandbox/key
# → { "api_key": "sk_sandbox_...", "expires_at": "...", "pages_remaining": 50 }
ts
import { KreuzbergCloud } from "@kreuzberg/cloud";
const client = await KreuzbergCloud.fromSandbox();
const result = await client.extractAndWait({
  file: new Blob(["Hello world"], { type: "text/plain" }),
});
console.log(result.result?.content);
python
from kreuzberg_cloud import AsyncKreuzbergCloud
async with await AsyncKreuzbergCloud.from_sandbox() as client:
    job = await client.extract_and_wait(file=b"hello world")
    print(job.status, job.result and job.result.content)
Single-file extract → poll
bash
# 1. Submit.
JOB_ID=$(curl -sX POST https://api.kreuzberg.dev/v1/extract \
  -H "Authorization: Bearer $KREUZBERG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "documents": [
      {"filename": "invoice.pdf", "mime_type": "application/pdf",
       "data": "'"$(base64 -w0 invoice.pdf)"'"}
    ],
    "options": {"extraction_config": {"output_format": "markdown"}}
  }' | jq -r '.job_ids[0]')

# 2. Poll until terminal.
curl -s https://api.kreuzberg.dev/v1/jobs/$JOB_ID \
  -H "Authorization: Bearer $KREUZBERG_API_KEY"

Other skills

  • offloading-extraction — full POST /v1/extract workflow with options.
  • tracking-cloud-jobs — polling cadence, webhook signatures.
  • presigned-uploads — three-step flow for files >50 MB.
  • versioning-documents — retrieve a document, list its versions, diff two versions.
  • managing-cloud-usage — quota and per-MIME breakdown.
  • sandbox-keys — when to recommend sandbox over production keys.

References

© hashgraph-online, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in plugins/kreuzberg-dev/plugins/plugins/kreuzberg-cloud/skills/kreuzberg-cloud of hashgraph-online/awesome-codex-plugins.

Open the folder on GitHubat commit 9e7b281

Compare with similar skills

Kreuzberg Cloud next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Kreuzberg Cloud compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Kreuzberg Cloud this skillhashgraph-online/awesome-codex-plugins1.3k—~2.7kAutomated safety check: PassMIT
API Patternsdilolabs/nosia2131 repos~2.5kAutomated safety check: PassMIT
Loops APIopeninary/openinary412—~1.1kAutomated safety check: PassAGPL-3.0
Verifygregluffy/HomeLabInfo103—~424Automated safety check: PassGPL-3.0
Lemon Squeezy Integrationpockethost/pockethost1.4k—~1.1kAutomated safety check: PassMIT
Bigcommerce APIqdhenry/Claude-Command-Suite1.3k—~1.5kAutomated safety check: PassNone

Similar skills

  • API Patterns

    dilolabs/nosia

    Builds REST APIs using respondto blocks with Jbuilder templates following the 37signals same-controllers-different-formats philosophy.

    213 GitHub starsUsed in 1 repo~2.5k tokens
    Backend & APIsAuto-check passed
  • Loops API

    openinary/openinary

    A skill your agent uses whenever the user wants to integrate Loops from application code, backend services, webhook handlers, or server-side automation.

    412 GitHub stars~1.1k tokensUpdated 5 days ago
    Backend & APIsAuto-check passed
  • Verify

    gregluffy/HomeLabInfo

    Build, run, and drive the HomeLabInfo backend to verify changes at its real surfaces (REST API, UDP DHCP listener, outgoing webhooks).

    103 GitHub stars~424 tokensUpdated 2 mo ago
    Backend & APIsAuto-check passed
  • Lemon Squeezy Integration

    pockethost/pockethost

    Full Lemon Squeezy integration — REST API, @lemonsqueezy/lemonsqueezy.js server SDK, Lemon.js checkout overlays, webhooks, customdata, and subscriptions.

    1.4k GitHub stars~1.1k tokensUpdated 12 days ago
    Backend & APIsAuto-check passed
  • Bigcommerce API

    qdhenry/Claude-Command-Suite

    BigCommerce API expert for building integrations, apps, headless storefronts, and automations.

    1.3k GitHub stars~1.5k tokensUpdated 7 mo ago
    Backend & APIsAuto-check passed
  • Discord

    OpenHands/extensions

    Build and automate Discord integrations (bots, webhooks, slash commands, and REST API workflows).

    161 GitHub stars~1.1k tokensUpdated yesterday
    Backend & APIsAuto-check passed

More from hashgraph-online/awesome-codex-plugins

All 714 skills in this repo
  • Anime Reaction Gif

    hashgraph-online/awesome-codex-plugins

    Create original anime-style reaction stickers as looping GIFs and MP4 previews, using generated character pose sheets and timed key poses.

    1.3k GitHub stars~922 tokensUpdated today
    Auto-check passed
  • Calibredb

    hashgraph-online/awesome-codex-plugins

    Manage and query Calibre libraries with the calibredb CLI (local paths or Calibre Content server URLs).

    1.3k GitHub stars~1k tokensUpdated today
    Auto-check passed
  • Rust API Test Harness

    hashgraph-online/awesome-codex-plugins

    A skill your agent uses when adding, changing, testing, or debugging Rust HTTP APIs and services, especially when Codex needs black-box integration tests, random-port app startup, real database test…

    1.3k GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Art

    hashgraph-online/awesome-codex-plugins

    Make a studio's game look like something at build time — a cover from a real frame of the game (free), painted covers, backdrops, textures and character plates from image models through the…

    1.3k GitHub stars~2.4k tokensUpdated today
    Auto-check passed
  • Calle

    hashgraph-online/awesome-codex-plugins

    Use CALL-E from Codex through the calle CLI. An agent skill from hashgraph-online/awesome-codex-plugins.

    1.3k GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Game Balance Economy

    hashgraph-online/awesome-codex-plugins

    Balance game difficulty, resources, rewards, probability, progression, economies, and dominant strategies.

    1.3k GitHub stars~618 tokensUpdated today
    Auto-check passed

Categories

Questions about Kreuzberg Cloud

What does Kreuzberg Cloud do?

Managed Kreuzberg document intelligence at api.kreuzberg.dev. Kreuzberg Cloud is an agent skill from hashgraph-online/awesome-codex-plugins.dev.

When should I use Kreuzberg Cloud?

Kreuzberg Cloud fits situations like: the user wants cloud extraction with webhook delivery; presigned uploads for large files; document versioning and diffing; per-project usage tracking — instead of running the local kreuzberg CLI.

How do I install Kreuzberg Cloud in Claude Code?

Run `npx skills add hashgraph-online/awesome-codex-plugins --skill kreuzberg-cloud -a claude-code`. Or copy the skill folder (plugins/kreuzberg-dev/plugins/plugins/kreuzberg-cloud/skills/kreuzberg-cloud in hashgraph-online/awesome-codex-plugins) into .claude/skills/kreuzberg-cloud in your project. Claude Code loads it when a task matches its description.

How do I install Kreuzberg Cloud in Codex?

Run `npx skills add hashgraph-online/awesome-codex-plugins --skill kreuzberg-cloud -a codex`. Or copy the skill folder (plugins/kreuzberg-dev/plugins/plugins/kreuzberg-cloud/skills/kreuzberg-cloud in hashgraph-online/awesome-codex-plugins) into .agents/skills/kreuzberg-cloud in your project. Codex loads it when a task matches its description.

Can I use Kreuzberg Cloud in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add hashgraph-online/awesome-codex-plugins --skill kreuzberg-cloud -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/kreuzberg-cloud, .gemini/skills/kreuzberg-cloud, .github/skills/kreuzberg-cloud and .opencode/skills/kreuzberg-cloud in your project.

What does Kreuzberg Cloud need to run?

Going by SKILL.md and its folder, Kreuzberg Cloud needs the command-line tools its instructions call (curl and jq) and credentials named KREUZBERG_API_KEY. Our summary lists: Python 3; A credential in KREUZBERG_API_KEY.

Does Kreuzberg Cloud access the network?

SKILL.md names 5 domains. In commands or code: api.kreuzberg.dev; the agent is likely to contact it when it follows the instructions. As links in the text: kreuzberg.dev, docs.kreuzberg.cloud, npmjs.com and pypi.org. This is read from the text; nothing was executed.

Is Kreuzberg Cloud safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Kreuzberg Cloud use?

Kreuzberg Cloud is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Kreuzberg Cloud use?

About 2.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Kreuzberg Cloud?

Skills that share tags, products or a category with Kreuzberg Cloud: API Patterns (dilolabs/nosia, 213 stars), Loops API (openinary/openinary, 412 stars), Verify (gregluffy/HomeLabInfo, 103 stars) and Lemon Squeezy Integration (pockethost/pockethost, 1.4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Kreuzberg Cloud?

hashgraph-online (a GitHub organization) maintains it in hashgraph-online/awesome-codex-plugins, which has 1,255 GitHub stars. The repository holds 714 skills in this directory. The repository was last updated on October 9, 2026.

Source: hashgraph-online/awesome-codex-plugins on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.