Agent skill

Lexoid Python

by oidlabs-com in oidlabs-com/Lexoid

Parse and convert documents (PDFs, images, web pages, DOCX/XLSX/PPTX, audio) inside a Python program using the lexoid library.

Apache-2.0Auto-check: notesDocuments & Office

Install Lexoid Python

skills CLI
$ npx skills add oidlabs-com/Lexoid --skill lexoid-python -a claude-code

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

GitHub CLI
$ gh skill install oidlabs-com/Lexoid lexoid-python --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/oidlabs-com/Lexoid.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/lexoid-python .claude/skills/lexoid-python && 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
lexoid-python
GitHub stars
109
Token cost
~3.5k tokens
SKILL.md length
869 words
Files
1
Skills in repo
2
Repo updated
First seen
Licence
Apache-2.0

At a glance

Parse and convert documents (PDFs, images, web pages, DOCX/XLSX/PPTX, audio) inside a Python program using the lexoid library.

  • Works in 5 steps: lexoid is installed (pip install lexoid). → Required API key env vars are set for… → For Linux DOCX → PDF conversion,… → …
  • The user is writing Python code that needs to extract markdown from documents
  • SKILL.md covers When to use this skill, Setup checks, Public API and parse() return shape, plus 4 more sections
  • Calls ollama and pip; needs GOOGLE_API_KEY and OPENAI_API_KEY

What it does

Lexoid Python is an agent skill from oidlabs-com/Lexoid. Parse and convert documents (PDFs, images, web pages, DOCX/XLSX/PPTX, audio) inside a Python program using the lexoid library. Use when the user is writing Python code that needs to extract markdown from documents, run schema-constrained extraction, convert files to LaTeX, get bounding boxes, recursively crawl URLs, or integrate document parsing into a larger pipeline. Triggers include from lexoid imports, "use lexoid in Python", "parse PDFs programmatically", "extract structured data with a Pydantic/dataclass…

Its SKILL.md is about 3.5k 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 Documents & Office, covering Document parsing, LaTeX and Word documents. It works with Python, LaTeX, Pydantic and Microsoft Word. The repository describes itself as: The open-source universal adapter for LLMs. Turn messy real-world data into clean, agent-ready context. The licence is Apache-2.0.

When your agent uses it

  • The user is writing Python code that needs to extract markdown from documents
  • Run schema-constrained extraction
  • Convert files to LaTeX
  • Get bounding boxes

Example prompts

  • “use lexoid in Python”
  • “parse PDFs programmatically”
  • “extract structured data with a Pydantic/dataclass schema”
  • “/lexoid-python”

Requirements

  • Python 3
  • A credential in GOOGLE_API_KEY
  • A credential in OPENAI_API_KEY

Workflow steps

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

  1. lexoid is installed (pip install lexoid).
  2. Required API key env vars are set for the chosen provider (see below).
  3. For Linux DOCX → PDF conversion, LibreOffice (lowriter) is on PATH.
  4. For api_provider="ollama": an ollama serve process is running at OLLAMA_BASE_URL (default http://localhost:11434) and the target model has…
  5. For api_provider="local" (SmolDocling/granite-docling, PaddleOCR-VL): no server needed — these models run in-process via transformers /…

What it can do on your machine

Read from SKILL.md and the folder at commit b45d174. 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:

    • ollama
    • pip

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

  • Network

    No URLs in SKILL.md. Its commands use pip, which can reach the network depending on how they are called.

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

  • Credentials

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

    • GOOGLE_API_KEY
    • OPENAI_API_KEY
    • ANTHROPIC_API_KEY
    • MISTRAL_API_KEY
    • HUGGINGFACEHUB_API_TOKEN
    • TOGETHER_API_KEY
    • OPENROUTER_API_KEY
    • FIREWORKS_API_KEY

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

Context cost

Lexoid Python loads about 3.5k tokens when it runs. Until then it costs about 151 tokens; SKILL.md has 869 words of instructions outside code blocks.

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

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: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:42
    ### Loading API keys from `.env`
  • NoteMentions a .env fileSKILL.md:44
    ess environment; it does **not** load a `.env` file on its own. When keys live in a project `.env`, load them before cal
  • NoteMentions a .env fileSKILL.md:49
    # Loads .env from the current dir (or a parent) into os.environ if the file
  • NoteMentions a .env fileSKILL.md:50
    ists; a no-op that returns False when no .env is found. Existing env vars

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 oidlabs-com/Lexoid at commit b45d174, republished under its Apache-2.0 licence (© oidlabs-com). 869 words, ~3,502 tokens.

Download SKILL.mdSave it as .claude/skills/lexoid-python/SKILL.md (or your agent's skills folder).
name
lexoid-python
description
Parse and convert documents (PDFs, images, web pages, DOCX/XLSX/PPTX, audio) inside a Python program using the `lexoid` library. Use when the user is writing Python code that needs to extract markdown from documents, run schema-constrained extraction, convert files to LaTeX, get bounding boxes, recursively crawl URLs, or integrate document parsing into a larger pipeline. Triggers include `from lexoid` imports, "use lexoid in Python", "parse PDFs programmatically", "extract structured data with a Pydantic/dataclass schema", or any request to embed parsing into a Python app/notebook.

Lexoid Python API

Lexoid's Python API is the right choice whenever the user is writing Python — notebooks, services, batch pipelines, or anything that needs the parsed result as a Python dict/list. For shell one-offs, use the lexoid-cli skill instead.

When to use this skill

  • The user is writing Python and wants to parse PDFs, images, URLs, DOCX/XLSX/PPTX, audio, or text-format files.
  • The user needs per-page segments, token usage, parser metadata, or bounding boxes in code.
  • The user wants schema-based structured extraction (dict, dataclass, or Pydantic BaseModel).
  • The user is integrating parsing into a larger app (Streamlit, FastAPI, RAG pipeline, etc.).

Setup checks

Before writing code, confirm:

  1. lexoid is installed (pip install lexoid).
  2. Required API key env vars are set for the chosen provider (see below).
  3. For Linux DOCX → PDF conversion, LibreOffice (lowriter) is on PATH.
  4. For api_provider="ollama": an ollama serve process is running at OLLAMA_BASE_URL (default http://localhost:11434) and the target model has been pulled with ollama pull <model>.
  5. For api_provider="local" (SmolDocling/granite-docling, PaddleOCR-VL): no server needed — these models run in-process via transformers / PaddleOCR. The first call downloads weights from Hugging Face, so the host needs network access (or pre-cached weights) and enough disk/RAM/GPU for the chosen model.

API keys by provider:

ProviderEnv var
geminiGOOGLE_API_KEY
openaiOPENAI_API_KEY
anthropicANTHROPIC_API_KEY
mistralMISTRAL_API_KEY
huggingfaceHUGGINGFACEHUB_API_TOKEN
togetherTOGETHER_API_KEY
openrouterOPENROUTER_API_KEY
fireworksFIREWORKS_API_KEY
ollamanone (uses OLLAMA_BASE_URL)
localnone
Loading API keys from .env

Lexoid reads API keys from the process environment; it does not load a .env file on its own. When keys live in a project .env, load them before calling any LLM-based API (LLM_PARSE, parse_with_schema, parse_to_latex, or AUTO when it routes to an LLM). python-dotenv ships as a Lexoid dependency, so it is already available:

python
from dotenv import load_dotenv

# Loads .env from the current dir (or a parent) into os.environ if the file
# exists; a no-op that returns False when no .env is found. Existing env vars
# are not overwritten unless override=True is passed.
load_dotenv()

from lexoid.api import parse
result = parse("document.pdf", parser_type="LLM_PARSE", model="gpt-4o")

Call load_dotenv() once at program/notebook startup, before the first parse(...) call. If the keys are already exported in the environment, this step is unnecessary (and harmless).

Public API

Four entry points in lexoid.api:

  • parse(path, parser_type="AUTO", pages_per_split=4, max_processes=4, **kwargs) — main function. Returns a dict.
  • parse_with_schema(path, schema, api=None, model="gpt-4o-mini", **kwargs) — structured JSON extraction. Returns a Python list whose shape depends on the mode and the model's output (see "Schema return shape" below).
  • parse_to_latex(path, api=None, model="gpt-4o-mini", **kwargs) — returns a LaTeX string.
  • parse_chunk(path, parser_type, **kwargs) — low-level single-chunk parser; users rarely need this.

ParserType enum: LLM_PARSE, STATIC_PARSE, AUTO.

parse() return shape

python
{
    "raw": str,                  # full markdown
    "segments": [                # one dict per page / section; may be empty
        # bboxes is included only when return_bboxes=True
        {"metadata": {"page": int}, "content": str, "bboxes": [(text, [x0, top, x1, bottom]), ...]},
        ...
    ],
    "title": str,
    "url": str,                  # input URL or "" if input was a local file
    "parent_title": str,         # parent doc title when recursive; "" otherwise
    "recursive_docs": [...],     # empty unless depth > 1
    # --- optional keys below ---
    "token_usage": {"input": int, "output": int, "total": int, "llm_page_count": int},
        # zeros under STATIC_PARSE-only; ABSENT on the HTML/recursive-URL path
        # (URL input that isn't a file-typed URL and as_pdf is not set)
    "parsers_used": [str, ...],  # ABSENT on the HTML/recursive-URL path (same condition)
    "token_cost": {...},         # only when api_cost_mapping is supplied
    "pdf_path": str,             # only when as_pdf=True; file is removed unless save_dir is also set
}

For URL inputs that resolve to HTML (no .pdf/image extension, and as_pdf=False), parse() short-circuits to recursive_read_html(), which returns only raw, segments, title, url, parent_title, and recursive_docs. Code that always reads result["token_usage"] or result["parsers_used"] will KeyError on that path — use .get(...) or guard with if "token_usage" in result.

Common recipes

Basic parsing
python
from lexoid.api import parse

result = parse("document.pdf")
markdown = result["raw"]
for seg in result["segments"]:
    print(seg["metadata"]["page"], seg["content"][:80])
Choose a parser explicitly
python
# Native-text PDFs — fastest, no API key
parse("document.pdf", parser_type="STATIC_PARSE", framework="pdfplumber")

# Scanned PDFs / images — local OCR, no API key
parse("scanned.pdf", parser_type="STATIC_PARSE", framework="paddleocr")

# LLM parsing
parse("document.pdf", parser_type="LLM_PARSE", model="gpt-4o")
parse("document.pdf", parser_type="LLM_PARSE", model="gemini-2.5-pro")
parse("document.pdf", parser_type="LLM_PARSE", model="claude-3-5-sonnet-20241022")
AUTO routing with a priority
python
# Speed (default): static if no images, LLM otherwise
parse("doc.pdf", parser_type="AUTO", router_priority="speed")

# Accuracy: prefers LLM, except PDFs with hidden hyperlinks
parse("doc.pdf", parser_type="AUTO", router_priority="accuracy")

# Cost: tries PaddleOCR first; LLM fallback if extracted text is too short
parse("doc.pdf", parser_type="AUTO", router_priority="cost", character_threshold=100)

# ML-based LLM auto-selection (uses lexoid/core/llm_selector.py)
parse("doc.pdf", parser_type="AUTO", autoselect_llm=True)
Local inference (no API key)
python
# Ollama — Lexoid forces max_processes=1 for Ollama
parse("doc.pdf", parser_type="LLM_PARSE",
      api_provider="ollama", model="gemma4:latest", max_processes=1)

# SmolDocling / granite-docling
parse("doc.pdf", parser_type="LLM_PARSE",
      api_provider="local", model="ds4sd/SmolDocling-256M-preview")

# PaddleOCR-VL
parse("doc.pdf", parser_type="LLM_PARSE",
      api_provider="local", model="PaddlePaddle/PaddleOCR-VL")
Schema-based structured extraction
Schema return shape

parse_with_schema returns a Python list. The exact shape depends on the mode and on what JSON the model emits:

  • Default (per-page) mode — one entry per page. Each entry is the JSON the model returned for that page: a single dict for single-record schemas, or a list of dicts for multi-record schemas (e.g., a page of table rows). Index as result[page_index] for the page's value, and result[page_index][record_index] when each page has multiple records.
  • fill_single_schema=True — a single-element list whose element is the JSON for the whole document (typically one dict).

If you need to support both single- and multi-record schemas in the same code path, normalize the per-page entries yourself (e.g., wrap a dict in [dict]).

python
from lexoid.api import parse_with_schema
from pydantic import BaseModel

class Invoice(BaseModel):
    invoice_number: str
    total: float

# Per-page extraction. `pages` is a list with one entry per page;
# each entry is whatever JSON the model returned for that page.
pages = parse_with_schema("invoice.pdf", schema=Invoice, model="gpt-4o-mini")
# e.g., pages[0] -> {"invoice_number": "...", "total": ...}
#       pages[0][0] -> first record if the model returned a list per page

# Single instance for the whole document — returns a one-element list.
[full] = parse_with_schema("contract.pdf", schema=Invoice,
                           model="gpt-4o", fill_single_schema=True)

# Dict schema with example data + alternate keys (improves match)
pages = parse_with_schema(
    "invoice.pdf",
    schema={"invoice_number": "string", "total": "number"},
    example_schema={"invoice_number": "INV-001", "total": 199.95},
    alternate_keys={"invoice_number": ["Invoice #", "Invoice No."]},
)

# Dataclass schemas also work
from dataclasses import dataclass
@dataclass
class Receipt:
    merchant: str
    amount: float

parse_with_schema("receipt.pdf", schema=Receipt)
Show full SKILL.md (299 more words)Show less
LaTeX conversion
python
from lexoid.api import parse_to_latex
latex_source = parse_to_latex("paper.pdf", model="gpt-4o")
URLs and recursive crawling
python
# Single page
parse("https://example.com")

# Crawl 2 levels deep
parse("https://example.com", depth=2)

# Render webpage → PDF first, then parse and keep the intermediate PDF
result = parse(
    "https://example.com",
    as_pdf=True,
    save_dir="output/",
    save_filename="example.pdf",
)
intermediate = result["pdf_path"]
Bounding boxes
python
result = parse("doc.pdf", return_bboxes=True, bbox_framework="auto")
for seg in result["segments"]:
    for text, bbox in seg.get("bboxes", []):
        # bbox = [x0, top, x1, bottom], normalized [0, 1]
        ...
Audio

Audio inputs require a Gemini model (the only provider with audio support).

python
result = parse("interview.mp3", model="gemini-2.5-flash")
print(result["raw"])
Token cost tracking
python
result = parse(
    "doc.pdf",
    model="gpt-4o",
    api_cost_mapping="tests/api_cost_mapping.json",
)
print(result["token_cost"])  # {"input": ..., "output": ..., "input-image": ..., "total": ...}

Key kwargs reference

kwargPurpose
modelLLM model name (default from DEFAULT_LLM, falls back to gemini-2.5-flash).
api_providerOverride inferred provider.
frameworkpdfplumber / pdfminer / paddleocr for STATIC_PARSE.
temperatureLLM sampling temperature (default 0.0).
max_tokensLLM output token limit (default 1024, 4096 for Ollama).
pages_per_splitPages per parallel chunk.
max_processesParallel workers (forced to 1 when parser_type="LLM_PARSE" and api_provider="ollama").
page_numsSpecific 1-indexed pages to parse (PDFs only).
depthRecursive URL parsing depth.
as_pdfConvert input to PDF before parsing.
save_dirWhere to keep the intermediate PDF if as_pdf=True.
return_bboxesAttach bounding boxes per segment.
bbox_frameworkauto / pdfplumber / paddleocr.
router_priorityspeed / accuracy / cost for AUTO mode.
character_thresholdMin char count for STATIC accept under cost priority.
autoselect_llmML-based LLM choice in AUTO mode.
retry_on_failFall back to alternate parser on error (default True).
max_image_dimensionMax px to which images / page renders are downscaled.
api_cost_mappingDict or JSON path with per-model cost — enables token_cost in output.
system_prompt / user_promptOverride the default LLM prompts.
verboseVerbose logging during LLM parsing.

Things to verify before reporting success

  • The result dict has non-empty raw. Empty raw with an error key means a recoverable failure occurred and Lexoid returned a stub.
  • For LLM_PARSE, token_usage["total"] is non-zero — zero suggests the API call silently failed.
  • For multi-page PDFs, len(result["segments"]) matches the expected page count (or len(page_nums) if used).
  • For parse_with_schema, each per-page entry may be a dict or a list of dicts depending on the schema and the model. Check the type before indexing, and verify that the keys actually match the schema — the LLM can drift; pass example_schema to anchor it.

See also

  • API reference: docs/api.rst.
  • CLI equivalent: lexoid-cli skill.
  • Example notebooks: examples/example_notebook.ipynb, examples/example_notebook_colab.ipynb.

© oidlabs-com, Apache-2.0. 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 skills/lexoid-python of oidlabs-com/Lexoid.

Open the folder on GitHubat commit b45d174

Compare with similar skills

Lexoid Python 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.

Lexoid Python compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Lexoid Python this skilloidlabs-com/Lexoid109—~3.5kAutomated safety check: NotesApache-2.0
MineruNebutra/MinerU-Skill122—~1.4kAutomated safety check: PassMIT
Doclingzhuzhaoyun/Molio431—~2.6kAutomated safety check: PassCustom licence
MineruNebutra/MinerU-Skill122—~504Automated safety check: PassMIT
Markdown ConverterTeam-Commonly/commonly1.4k—~557Automated safety check: PassApache-2.0
Ambiguity Reportlawve-ai/awesome-legal-skills826—~4.6kAutomated safety check: PassApache-2.0

Similar skills

  • Mineru

    Nebutra/MinerU-Skill

    An AI-Native skill for parsing PDF / Office / image files into clean Markdown with MinerU — a fast, zero-config document parser for AI agents.

    122 GitHub stars~1.4k tokensUpdated 13 days ago
    Documents & OfficeAuto-check passed
  • Docling

    zhuzhaoyun/Molio

    PRIMARY skill for converting .pdf, .docx, .pptx, .xlsx, .doc, .ppt, .xls, images, and audio/video files (.mp3, .wav, .m4a, .mp4, .mov, etc.) to Markdown.

    431 GitHub stars~2.6k tokensUpdated today
    Documents & OfficeAuto-check passed
  • Mineru

    Nebutra/MinerU-Skill

    An AI-Native skill for parsing PDF / Office / image files into Markdown with MinerU — a fast, zero-config document parser for AI agents.

    122 GitHub stars~504 tokensUpdated 13 days ago
    Documents & OfficeAuto-check passed
  • Markdown Converter

    Team-Commonly/commonly

    Convert binary documents (PDF, DOCX, XLSX, PPTX, HTML, EPUB, images) to clean LLM-friendly Markdown using Microsoft's markitdown Python tool.

    1.4k GitHub stars~557 tokensUpdated today
    Documents & OfficeAuto-check passed
  • Ambiguity Report

    lawve-ai/awesome-legal-skills

    Turn an interpretive-ambiguity audit of a legal text — contract, statute, regulation, or judicial opinion — into a polished deliverable.

    826 GitHub stars~4.6k tokensUpdated 5 days ago
    Documents & OfficeAuto-check passed
  • Document Converter

    BlackBeltTechnology/pi-agent-dashboard

    Convert documents bidirectionally via the pi-doc-engine facade: ingest PDF/DOCX/PPTX/XLSX to provenance-stamped Markdown (with OCR), and produce templated DOCX/PDF from Markdown with diagrams, TOC…

    316 GitHub stars~999 tokensUpdated today
    Documents & OfficeAuto-check passed

More from oidlabs-com/Lexoid

  • Lexoid CLI

    oidlabs-com/Lexoid

    Parse and convert documents (PDFs, images, web pages, DOCX/XLSX/PPTX, audio) from the terminal using the lexoid CLI.

    109 GitHub stars~2k tokensUpdated yesterday
    Auto-check: notes

Questions about Lexoid Python

What does Lexoid Python do?

Parse and convert documents (PDFs, images, web pages, DOCX/XLSX/PPTX, audio) inside a Python program using the lexoid library. Lexoid Python is an agent skill from oidlabs-com/Lexoid. Parse and convert documents (PDFs, images, web pages, DOCX/XLSX/PPTX, audio) inside a Python program using the lexoid library.

When should I use Lexoid Python?

Lexoid Python fits situations like: the user is writing Python code that needs to extract markdown from documents; run schema-constrained extraction; convert files to LaTeX; get bounding boxes.

How do I install Lexoid Python in Claude Code?

Run `npx skills add oidlabs-com/Lexoid --skill lexoid-python -a claude-code`. Or copy the skill folder (skills/lexoid-python in oidlabs-com/Lexoid) into .claude/skills/lexoid-python in your project. Claude Code loads it when a task matches its description.

How do I install Lexoid Python in Codex?

Run `npx skills add oidlabs-com/Lexoid --skill lexoid-python -a codex`. Or copy the skill folder (skills/lexoid-python in oidlabs-com/Lexoid) into .agents/skills/lexoid-python in your project. Codex loads it when a task matches its description.

Can I use Lexoid Python 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 oidlabs-com/Lexoid --skill lexoid-python -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/lexoid-python, .gemini/skills/lexoid-python, .github/skills/lexoid-python and .opencode/skills/lexoid-python in your project.

What does Lexoid Python need to run?

Going by SKILL.md and its folder, Lexoid Python needs the command-line tools its instructions call (ollama and pip) and credentials named GOOGLE_API_KEY, OPENAI_API_KEY, ANTHROPIC_API_KEY and MISTRAL_API_KEY. Our summary lists: Python 3; A credential in GOOGLE_API_KEY; A credential in OPENAI_API_KEY.

Does Lexoid Python access the network?

SKILL.md contains no URLs. Its commands use pip, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Lexoid Python safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Lexoid Python use?

Lexoid Python is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Lexoid Python use?

About 3.5k tokens (SKILL.md is roughly 14k 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 Lexoid Python?

Skills that share tags, products or a category with Lexoid Python: Mineru (Nebutra/MinerU-Skill, 122 stars), Docling (zhuzhaoyun/Molio, 431 stars), Mineru (Nebutra/MinerU-Skill, 122 stars) and Markdown Converter (Team-Commonly/commonly, 1.4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Lexoid Python?

oidlabs-com (a GitHub organization) maintains it in oidlabs-com/Lexoid, which has 109 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on October 6, 2026.

Source: oidlabs-com/Lexoid on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.