kreuzberg-dev
- 95 skills
- 0 followers
- 3 hours ago last updated
- ▌ Using The MCP Server 3 · kreuzberg-devUse when converting HTML to Markdown or extracting metadata and tables through the html-to-markdown MCP server's tools, rather than shelling out to the CLI. Covers the tool surface, the auto-installing launcher, and when MCP beats the CLI or SDK.
- ▌ Using The MCP Server 4 · kreuzberg-devUse when parsing source, extracting code structure, or detecting a language through the tree-sitter-language-pack MCP server's tools, rather than shelling out to the ts-pack CLI. Covers the tool surface, the auto-installing launcher, and when MCP beats the CLI or SDK.
- ▌ Xberg 2 · kreuzberg-dev bundleExtract text, tables, metadata, and images from 107 document formats (PDF, Office, images, HTML, email, archives, academic) using Xberg. Use when writing code that calls Xberg APIs in Python, Node.js/TypeScript, Rust, or CLI. Covers installation, extraction (sync/async), configuration (OCR, chunking, output format), batch processing, error handling, and plugins.
- ▌ Converting HTML 2 · kreuzberg-devUse when converting HTML to Markdown, Djot, or plain text. Covers output formats, heading and code-block styles, lists, escaping, wrapping, and HTML preprocessing.
- ▌ HTML To Markdown 2 · kreuzberg-dev bundleConvert HTML to Markdown, Djot, or plain text with structured extraction. Use when writing code that calls html-to-markdown APIs in Rust, Python, TypeScript, Go, Ruby, PHP, Java, C#, Elixir, R, C, or WASM. Covers installation, conversion, configuration, metadata extraction, tables, document structure, inline images, URL fetching, and CLI usage.
- ▌ Extracting Tables 2 · kreuzberg-devUse when extracting tabular data from HTML. Covers GFM Markdown tables, the structured tables array (grid cells plus pre-rendered markdown), and HTML line breaks in table cells.
- ▌ Extracting Metadata 2 · kreuzberg-devUse when extracting metadata from HTML — title, description, language, Open Graph, JSON-LD / Microdata / RDFa, headers, links, and images. Covers the --json output shape and the --extract-metadata flag.
- ▌ Fetching And Converting Urls 2 · kreuzberg-devUse when fetching a live URL and converting it to Markdown. Covers --url, custom user agents, preprocessing for noisy pages, and the --json ConversionResult shape.
- ▌ Liter LLM 2 · kreuzberg-devUniversal LLM API client for 165 providers with native bindings for 14 languages. Use when writing code that calls LLM APIs via liter-llm in Python, TypeScript, Rust, Go, Java, C#, Ruby, PHP, Elixir, WASM, or C, when running the OpenAI-compatible proxy, or when calling LLMs through the MCP server. Covers chat, streaming, tool calling, embeddings, image generation, speech, transcription, moderation, web search, OCR, reranking, provider routing, middleware, and configuration.
- ▌ Calling Llms 2 · kreuzberg-devUse when sending chat completions through liter-llm and routing to a specific provider via the `provider/model` prefix. Covers the chat call shape, provider routing, model_hint, message roles, and error categories.
- ▌ Tool Calling 2 · kreuzberg-devUse when defining functions/tools for an LLM to call through liter-llm, or requesting structured JSON outputs. Covers tool schemas, tool_calls handling, and response formats.
- ▌ Running The Proxy 2 · kreuzberg-devUse when running the `liter-llm api` OpenAI-compatible gateway — virtual keys, per-key rate limits, budgets, cost tracking, and model routing. Covers the TOML config and the 22 REST endpoints.
- ▌ Streaming Responses 2 · kreuzberg-devUse when streaming tokens incrementally from an LLM via liter-llm over SSE or async iterators. Covers chat_stream, delta handling, and null-content chunks.
- ▌ Using The MCP Server 2 · kreuzberg-devUse when calling LLM APIs through the liter-llm MCP server's 22 tools, and to decide when MCP beats the CLI or SDK. Covers the tool surface, the auto-installing launcher, and authentication.
- ▌ Embeddings And Search 2 · kreuzberg-devUse when generating embeddings, calling the 12 web-search providers, or running OCR over documents with the 4 OCR providers through liter-llm. Covers embed, search, and ocr methods plus reranking.
- ▌ Parsing Source 2 · kreuzberg-devUse when the user wants a tree-sitter syntax tree for a source file — an s-expression dump or JSON tree. Covers `ts-pack parse`, language auto-detection vs `--language`, stdin input, and reading `has_errors`.
- ▌ Managing Parsers 2 · kreuzberg-devUse when the user needs to manage the tree-sitter parser cache — prefetch parsers for offline or CI runs, list what is downloaded, inspect a language, find the cache directory, or clean it. Covers `ts-pack download`, `list`, `info`, `cache-dir`, `clean`, and `init`.
- ▌ Chunking For Llms 2 · kreuzberg-devUse when the user wants to split source code into chunks for an LLM context window without breaking syntax mid-construct. Covers `ts-pack process --chunk-size`, why syntax-aware splits beat fixed-byte splits, picking a size, and the chunk JSON shape.
- ▌ Detecting Languages 2 · kreuzberg-devUse when the user wants to know which programming language a file or snippet is. Covers implicit detection in `ts-pack parse`/`process`, confirming support with `ts-pack list`/`info`, and the SDK detection functions for path, extension, and raw content.
- ▌ Extracting Code Structure 2 · kreuzberg-devUse when the user wants structured code metadata from a source file — functions, classes, imports, exports, symbols, docstrings, comments, or syntax diagnostics. Covers `ts-pack process` feature flags, the JSON result shape, and the default feature set.
- ▌ Tree Sitter Language Pack 2 · kreuzberg-devParse and extract code intelligence from 371 programming languages using tree-sitter grammars. Use when writing code that parses source, extracts structure/imports/exports/symbols/docstrings/comments, detects a language, runs syntax diagnostics, or produces syntax-aware chunks for LLMs — in Rust, Python, Node.js/TypeScript, or the ts-pack CLI. Covers installation, the CLI surface, the SDK surface, and parser-cache management.
- ▌ Testing Conventions · kreuzberg-devHow to test scripts in xberg-io/actions — which framework each language uses (Bats for shell, pytest for Python, Pester for PowerShell), where suites live, how to isolate a test from the host machine so it cannot pass locally and fail on a runner, and how to prove a test actually discriminates. Load when adding or changing any script under an action, when writing or fixing tests, or when a suite passes locally but fails in CI.
- ▌ Alef · kreuzberg-devUse Alef correctly for Rust-to-polyglot binding generation. Trigger when configuring alef.toml, generating bindings, READMEs, API/CLI/MCP docs, llms.txt, agent skills, e2e suites, or debugging stale/missing generated output in Alef-powered repositories. Covers the safe command sequence, config ownership, generated-output rules, snippet validation, downstream smoke testing, and Alef development workflow.
- ▌ Regen Audit · kreuzberg-devTreat running `alef generate`/`alef all`/`alef verify` in a consumer repo as an audit, not a build step. Use this skill whenever you run a regen, read its log or diff, or investigate "the fix didn't work" after regenerating a consumer repo's bindings.
- ▌ Binding Audit · kreuzberg-devAudit bindings for coverage gaps — verify every public Rust item is exposed across all generated language bindings. Use this skill any time you need to check that a function/type is present in every target language, audit intentional exclusions, or investigate missing bindings in one or more languages. Covers the full audit flow: config review, attribute scan, item enumeration, cross-binding diff, gap reporting, and triage (alef vs Alef-owned workflow/action vs consumer config).
- ▌ Jinja Codegen · kreuzberg-devMechanics of alef's Minijinja template system: which template_env module to call, how to register a template, inline-template rules, and engine settings. Use this skill when adding or changing generated-code templates in any backend, codegen, or e2e generator module.
- ▌ Release Procedure · kreuzberg-devCut, tag, and publish an alef release end-to-end. Use this skill any time the user asks for a release, a version bump, a hotfix tag, or a CHANGELOG roll-up in this repo. Covers the full pipeline: changelog, version sync via Taskfile, Cargo.toml verification, poly lint pass, atomic commit (no AI signatures, no --no-verify when avoidable), git tag, and `gh release create` (not just a tag).
- ▌ Two Generators Disagree · kreuzberg-devAlef's dominant defect shape: two components read the same config or IR and act on it differently. Use this skill when a generated package fails to build, a generated suite fails wholesale, or a lowering looks wrong in one backend but not others.
- ▌ Kreuzberg · kreuzberg-dev bundleExtract text, tables, metadata, and images from 91+ document formats (PDF, Office, images, HTML, email, archives, academic) using Kreuzberg. Use when writing code that calls Kreuzberg APIs in Python, Node.js/TypeScript, Rust, or CLI. Covers installation, extraction (sync/async), configuration (OCR, chunking, output format), batch processing, error handling, and plugins.
- ▌
- ▌
- ▌
- ▌
- ▌
- ▌
- ▌
- ▌
- ▌ Crate Structure · kreuzberg-devMap of the html-to-markdown workspace — the seven `crates/` (core, cli, ffi, py, node, php, wasm) with the unsafe_code forbid/override rule, the out-of-workspace language packages under `packages/`, and the primary `convert()` API with its ConversionResult shape, feature flags, and dual parser. Load when navigating crates/packages, deciding where code belongs, or working with the core conversion API.
- ▌
- ▌
- ▌
- ▌ Quick Start · kreuzberg-devDeveloper quick-start for xberg-io repos — prerequisites, initial setup, and the core build/test/lint workflow. Load when onboarding to a repo or setting up a local dev environment for the first time.
- ▌ Gh Workflows · kreuzberg-devConventions for using the gh CLI to manage PRs, issues, CI runs, and releases — squash merges, issue linking, monitoring and reruns, generated release notes. Load when creating or merging PRs, filing issues, monitoring/rerunning CI, or cutting a GitHub release.
- ▌ Alef Workflow · kreuzberg-devHow to work with Alef-generated binding files and the task commands that regenerate, build, format, and verify them. Load when editing bindings, running task alef:*, or regenerating generated packages/e2e suites.
- ▌ Basemind Tools · kreuzberg-devHow to use basemind's MCP tools and CLI for structural and historical code questions instead of grep, file reads, and naked git. Load when navigating the codebase, finding definitions or call sites, exploring git history, or coordinating with other agents in the repo.
- ▌ Poly Lint Format · kreuzberg-devReference for poly, the single-binary multi-language linter and formatter — per-language engines, the lint/fmt commands, poly.toml configuration, severity behavior, and the shared CI validation workflow. Load when linting or formatting code, configuring poly.toml, or wiring poly into CI.
- ▌ Release Workflow · kreuzberg-devRelease/publish a Rust core crate or CLI in an xberg-io polyglot repo (crawlberg, html-to-markdown, xberg, tree-sitter-language-pack, liter-llm). Load when releasing or publishing a Rust crate or CLI — cutting a new version, tagging, running `gh release create`, installing the released build locally, and cleaning up. Repo-agnostic; for repo-specific task names check the repo's own release-workflow skill and Taskfile.
- ▌ Scoop Distribution · kreuzberg-devMaintain the Windows Scoop release channel: the per-repo manifest template and config, the publish-scoop-manifest job, and the shared xberg-io/scoop-bucket. Use this skill when editing anything under scripts/publish/*.json.tmpl or scripts/publish/scoop.json, when adding a CLI to the bucket, or when a Scoop install fails after a release.
- ▌ Agent Coordination · kreuzberg-devHow to dispatch, monitor, recover, and trust subagents and worktree-isolated peers safely in a repo other agents may also be touching. Use this skill whenever you spawn a subagent, check on one that has gone quiet, merge an agent's branch, act on a subagent's claimed diagnosis, or write a brief for another agent to execute.
- ▌ Taskfile Structure · kreuzberg-devStandard Taskfile conventions across xberg-io repos — task discovery, common and language-scoped tasks, build profiles, the alef and e2e task families, lock-file discipline. Load when running or adding tasks, choosing between task commands, or deciding how to build/test/regenerate a repo.
- ▌ Tracing Conventions · kreuzberg-devThe canonical contract for tracing as a first-class product observability surface across xberg-io Rust libraries and services — level semantics, span/field naming, instrumentation patterns, and how xberg-enterprise consumes library spans over OTLP. Load when adding or reviewing tracing instrumentation, designing spans/events, wiring a subscriber, or reconciling observability features.
- ▌ Binding Architecture · kreuzberg-devArchitecture rules for the polyglot binding layer and the C FFI boundary — crate naming, distribution paths, ownership and null-safety invariants, error-context propagation, and async patterns. Load when designing or editing language bindings, the C ABI, cbindgen headers, or FFI type/error conversions.
- ▌ Common Task Commands · kreuzberg-devCommon Taskfile commands across xberg-io repos — setup, build, test, lint, format, coverage, and bench. Load when running or discovering task commands, or unsure which task drives a build/test/lint step.
- ▌ Xberg Brand And Docs · kreuzberg-devCanonical xberg.io brand, product catalog, docs-site (Astro Starlight + @xberg-io/docs-theme), alef badge, docs task commands, prose style, Google Analytics IDs, brand assets, and README-template policy. Load when writing READMEs or docs, editing docs-site config, adding the ecosystem block or alef badge, or touching brand/analytics wiring.
- ▌ Consumer Release Gates · kreuzberg-devReproduce an alef-generated consumer repo's release gate locally before cutting a release, and verify published package names against the real manifest rather than a guessed coordinate. Use this skill before tagging a release in any repo whose bindings are generated by alef, or when auditing whether a package actually reached its registry.
- ▌ Cicd Pipeline Standards · kreuzberg-devStandard shape of the CI/CD pipeline across xberg-io repos — per-domain GitHub Actions workflows, linters, OS matrix, quality gates and coverage thresholds, task-only invocation, and the Validate→Build→Test→Deploy stages. Load when adding or editing CI workflows, setting up release builds, or defining quality gates.
- ▌ Feature Flag Conventions · kreuzberg-devThe shared Cargo feature-flag naming and semantics contract across xberg-io Rust libraries — the same flag names mean the same thing everywhere (otel, mcp/mcp-http, mimalloc/jemalloc, acceleration). Load when adding, renaming, or reviewing a crate's [features], or reconciling a library's flags with the rest of the stack.
- ▌ Create E2e Fixture · kreuzberg-devHow to author a new e2e test fixture for cross-language test generation — fixture fields, assertion types, and id conventions. Load when adding or editing e2e fixtures consumed by the generator.
- ▌ Gcloud Conventions · kreuzberg-devGoogle Cloud conventions for xberg-io — project and region, the standard service set, resource naming, workload identity federation over service account keys, least-privilege IAM, and gcloud-CLI-only operations. Load when provisioning or configuring GCP resources, naming services/buckets, or setting up auth and IAM.
- ▌ Fixture Schema Design · kreuzberg-devSchema for e2e test fixtures — required fields, the supported assertion types, skip conditions, id uniqueness rules, and how fixture files are organized by category. Load when authoring or editing e2e fixtures, choosing assertion types, or structuring fixture files.
- ▌ Add Language Generator · kreuzberg-devHow to add a new target language to Alef-based e2e test generation — generator wiring, output layout, and registration. Load when extending e2e generation to a new language binding.
- ▌ Containerization Docker · kreuzberg-devDocker image conventions for xberg-io services — multi-stage builds, layer caching, security hardening (non-root, vulnerability scanning, no baked secrets), signal handling and healthchecks, and tagging. Load when writing or editing Dockerfiles, container build pipelines, or image release tagging.
- ▌ E2e Generator Conventions · kreuzberg-devHow Alef-based e2e generation works — the alef.toml [e2e] config, JSON fixtures under fixtures/, per-language output layout, fixture id/loading/sorting rules, and the regenerate/verify task commands. Load when configuring e2e generation, adding fixtures, or regenerating/running generated e2e suites.
- ▌ Monitoring Observability · kreuzberg-devObservability conventions for xberg-io services — structured JSON logging, tracing spans and context fields, log-level semantics, Prometheus metric types and cardinality rules, and health endpoints wired to K8s probes. Load when adding logging, tracing, metrics, or health checks to a service.
- ▌ Extracting Code Structure · kreuzberg-devUse when the user wants structured code metadata from a source file — functions, classes, imports, exports, symbols, docstrings, comments, or syntax diagnostics. Covers `ts-pack process` feature flags, the JSON result shape, and the default feature set.
- ▌ Tree Sitter Language Pack · kreuzberg-devParse and extract code intelligence from 306 programming languages using tree-sitter grammars. Use when writing code that parses source, extracts structure/imports/exports/symbols/docstrings/comments, detects a language, runs syntax diagnostics, or produces syntax-aware chunks for LLMs — in Rust, Python, Node.js/TypeScript, or the ts-pack CLI. Covers installation, the CLI surface, the SDK surface, and parser-cache management.
- ▌ Crawling A Site · kreuzberg-devUse when the user wants to follow links across a domain and capture every reachable page as Markdown. Covers `crawlberg crawl` with depth, page caps, concurrency, rate limiting, domain scoping, robots, and output selection.
- ▌ Serving The API · kreuzberg-devUse when the user wants a long-running HTTP service for scrape/crawl/map instead of one-shot CLI calls or the MCP server — for example wiring crawlberg into other apps over REST. Covers `crawlberg serve`, the Firecrawl-v1-compatible endpoints, `--host`/`--port`, and when to prefer it.
- ▌ Extracting Keywords · kreuzberg-devUse when extracting keywords (YAKE/RAKE) from documents — and, secondarily, when detecting document language or generating embeddings for RAG and search. Covers the keyword config (and its feature gating), `--detect-language`, and the standalone `embed` command with real flags.
- ▌ Extracting With Ocr · kreuzberg-devUse when extracting text from scanned PDFs, photographed pages, or images that have no embedded text layer. Covers OCR backends, language packs, force-OCR, and performance tuning.
- ▌ Headless Fallback · kreuzberg-devUse when a static fetch returns nothing useful and the page needs a real browser. Covers `--browser-mode auto|always|never`, external CDP via `--browser-endpoint`, symptoms of JS-only pages and WAF blocks, and the performance cost.
- ▌ Running The Proxy · kreuzberg-devUse when running the `liter-llm api` OpenAI-compatible gateway — virtual keys, per-key rate limits, budgets, cost tracking, and model routing. Covers the TOML config and the 22 REST endpoints.
- ▌ Streaming Responses · kreuzberg-devUse when streaming tokens incrementally from an LLM via liter-llm over SSE or async iterators. Covers chat_stream, delta handling, and null-content chunks.
- ▌ Using The MCP Server · kreuzberg-devUse when calling LLM APIs through the liter-llm MCP server's 22 tools, and to decide when MCP beats the CLI or SDK. Covers the tool surface, the auto-installing launcher, and authentication.
- ▌ Embeddings And Search · kreuzberg-devUse when generating embeddings, calling the 12 web-search providers, or running OCR over documents with the 4 OCR providers through liter-llm. Covers embed, search, and ocr methods plus reranking.
- ▌ Automating The Browser · kreuzberg-devUse when extracting a page needs scripted interaction first — click, type, press a key, scroll, wait, screenshot, or run JS before capturing the DOM. Covers `crawlberg interact URL --actions` with the real action schema, result shape, limits, and external-CDP options.
- ▌ Converting HTML · kreuzberg-devUse when converting HTML to Markdown, Djot, or plain text. Covers output formats, heading and code-block styles, lists, escaping, wrapping, and HTML preprocessing.
- ▌ HTML To Markdown · kreuzberg-dev bundleConvert HTML to Markdown, Djot, or plain text with structured extraction. Use when writing code that calls html-to-markdown APIs in Rust, Python, TypeScript, Go, Ruby, PHP, Java, C#, Elixir, R, C, or WASM. Covers installation, conversion, configuration, metadata extraction, tables, document structure, inline images, URL fetching, and CLI usage.
- ▌ Scraping HTML To Markdown · kreuzberg-devUse when the user wants a single page rendered as clean Markdown plus structured metadata. Covers `crawlberg scrape URL`, JSON vs Markdown output, what metadata is returned, and how to handle JS-heavy pages.
- ▌ Extracting Metadata · kreuzberg-devUse when extracting metadata from HTML — title, description, language, Open Graph, JSON-LD / Microdata / RDFa, headers, links, and images. Covers the --json output shape and the --extract-metadata flag.
- ▌ Parsing Source · kreuzberg-devUse when the user wants a tree-sitter syntax tree for a source file — an s-expression dump or JSON tree. Covers `ts-pack parse`, language auto-detection vs `--language`, stdin input, and reading `has_errors`.
- ▌ Managing Parsers · kreuzberg-devUse when the user needs to manage the tree-sitter parser cache — prefetch parsers for offline or CI runs, list what is downloaded, inspect a language, find the cache directory, or clean it. Covers `ts-pack download`, `list`, `info`, `cache-dir`, `clean`, and `init`.
- ▌ Chunking For Llms · kreuzberg-devUse when the user wants to split source code into chunks for an LLM context window without breaking syntax mid-construct. Covers `ts-pack process --chunk-size`, why syntax-aware splits beat fixed-byte splits, picking a size, and the chunk JSON shape.
- ▌ Fetching And Converting Urls · kreuzberg-devUse when fetching a live URL and converting it to Markdown. Covers --url, custom user agents, preprocessing for noisy pages, and the --json ConversionResult shape.
- ▌ Detecting Languages · kreuzberg-devUse when the user wants to know which programming language a file or snippet is. Covers implicit detection in `ts-pack parse`/`process`, confirming support with `ts-pack list`/`info`, and the SDK detection functions for path, extension, and raw content.
- ▌ Xberg · kreuzberg-dev bundleExtract text, tables, metadata, and images from 91+ document formats (PDF, Office, images, HTML, email, archives, academic) using Xberg. Use when writing code that calls Xberg APIs in Python, Node.js/TypeScript, Rust, or CLI. Covers installation, extraction (sync/async), configuration (OCR, chunking, output format), batch processing, error handling, and plugins.
- ▌ Chunking · kreuzberg-devUse when splitting extracted text into chunks for LLM context windows or RAG ingestion. Covers chunk size, overlap, markdown/yaml/semantic chunkers, tokenizer-based sizing, and the standalone `chunk` command.
- ▌ Crawlberg · kreuzberg-devCrawl, scrape, and convert websites to Markdown using the local crawlberg CLI and its MCP server. Use when the user wants to fetch a page, follow links across a domain, enumerate URLs, or drive a real browser. Covers installation, the subcommands (scrape, crawl, map, interact, batch-scrape, batch-crawl, download, citations, version, mcp, serve), output formats (JSON + Markdown), browser fallback, and when to prefer the MCP server over shelling out.
- ▌ Liter LLM · kreuzberg-devUniversal LLM API client for 143 providers with native bindings for 14 languages. Use when writing code that calls LLM APIs via liter-llm in Python, TypeScript, Rust, Go, Java, C#, Ruby, PHP, Elixir, WASM, or C, when running the OpenAI-compatible proxy, or when calling LLMs through the MCP server. Covers chat, streaming, tool calling, embeddings, image generation, speech, transcription, moderation, web search, OCR, reranking, provider routing, middleware, and configuration.
- ▌ Mapping Urls · kreuzberg-devUse when the user wants the list of URLs on a site rather than the page content — sitemap analysis, link planning, or seeding another tool. Covers `crawlberg map URL` with `--limit`, `--search`, robots, output, and how it differs from a full crawl.
- ▌ Calling Llms · kreuzberg-devUse when sending chat completions through liter-llm and routing to a specific provider via the `provider/model` prefix. Covers the chat call shape, provider routing, model_hint, message roles, and error categories.
- ▌ Tool Calling · kreuzberg-devUse when defining functions/tools for an LLM to call through liter-llm, or requesting structured JSON outputs. Covers tool schemas, tool_calls handling, and response formats.
- ▌ Batch Extraction · kreuzberg-devUse when extracting from many files at once with shared config, bounded parallelism, per-file overrides, and error recovery. Covers the `batch` command, `--file-configs`, `--max-concurrent`, and output layout.
- ▌ Picking A Format · kreuzberg-devUse when choosing an output format for extracted documents — text, markdown, djot, html, or JSON. Maps consumer (LLM, parser, archive) to the right `--format` / `--content-format` pair.
- ▌ Extracting Tables · kreuzberg-devUse when extracting tabular data from PDFs, spreadsheets, or images. Covers layout-aware table detection, table model selection, output formats (markdown / JSON cells), and known limits.