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.
Parse and convert documents (PDFs, images, web pages, DOCX/XLSX/PPTX, audio) inside a Python program using the lexoid library.
$ npx skills add oidlabs-com/Lexoid --skill lexoid-python -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install oidlabs-com/Lexoid lexoid-python --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "lexoid-python" agent skill from https://github.com/oidlabs-com/Lexoid/tree/main/skills/lexoid-python into .claude/skills/lexoid-python/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lexoid-python", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/oidlabs-com/Lexoid/tree/main/skills/lexoid-pythonType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add oidlabs-com/Lexoid --skill lexoid-python -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install oidlabs-com/Lexoid lexoid-python --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/oidlabs-com/Lexoid.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/lexoid-python .agents/skills/lexoid-python && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "lexoid-python" agent skill from https://github.com/oidlabs-com/Lexoid/tree/main/skills/lexoid-python into .agents/skills/lexoid-python/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lexoid-python", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add oidlabs-com/Lexoid --skill lexoid-python -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install oidlabs-com/Lexoid lexoid-python --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/oidlabs-com/Lexoid.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/lexoid-python .cursor/skills/lexoid-python && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "lexoid-python" agent skill from https://github.com/oidlabs-com/Lexoid/tree/main/skills/lexoid-python into .cursor/skills/lexoid-python/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lexoid-python", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/oidlabs-com/Lexoid.git --path skills/lexoid-python--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add oidlabs-com/Lexoid --skill lexoid-python -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install oidlabs-com/Lexoid lexoid-python --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/oidlabs-com/Lexoid.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/lexoid-python .gemini/skills/lexoid-python && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "lexoid-python" agent skill from https://github.com/oidlabs-com/Lexoid/tree/main/skills/lexoid-python into .gemini/skills/lexoid-python/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lexoid-python", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install oidlabs-com/Lexoid lexoid-pythonInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add oidlabs-com/Lexoid --skill lexoid-python -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/oidlabs-com/Lexoid.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/lexoid-python .github/skills/lexoid-python && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "lexoid-python" agent skill from https://github.com/oidlabs-com/Lexoid/tree/main/skills/lexoid-python into .github/skills/lexoid-python/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lexoid-python", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add oidlabs-com/Lexoid --skill lexoid-python -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install oidlabs-com/Lexoid lexoid-python --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/oidlabs-com/Lexoid.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/lexoid-python .opencode/skills/lexoid-python && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "lexoid-python" agent skill from https://github.com/oidlabs-com/Lexoid/tree/main/skills/lexoid-python into .opencode/skills/lexoid-python/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lexoid-python", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
lexoid-pythonParse 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. 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.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit b45d174. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
ollamapipFrom the folder's file list and the shell code blocks in SKILL.md.
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.
Names these keys or tokens, usually read from environment variables:
GOOGLE_API_KEYOPENAI_API_KEYANTHROPIC_API_KEYMISTRAL_API_KEYHUGGINGFACEHUB_API_TOKENTOGETHER_API_KEYOPENROUTER_API_KEYFIREWORKS_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
### Loading API keys from `.env`ess environment; it does **not** load a `.env` file on its own. When keys live in a project `.env`, load them before cal# Loads .env from the current dir (or a parent) into os.environ if the fileists; a no-op that returns False when no .env is found. Existing env varsAutomated 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.
The full file from oidlabs-com/Lexoid at commit b45d174, republished under its Apache-2.0 licence (© oidlabs-com). 869 words, ~3,502 tokens.
.claude/skills/lexoid-python/SKILL.md (or your agent's skills folder).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.
dict, dataclass, or Pydantic BaseModel).Before writing code, confirm:
lexoid is installed (pip install lexoid).lowriter) is on PATH.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>.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:
| Provider | Env var |
|---|---|
gemini | GOOGLE_API_KEY |
openai | OPENAI_API_KEY |
anthropic | ANTHROPIC_API_KEY |
mistral | MISTRAL_API_KEY |
huggingface | HUGGINGFACEHUB_API_TOKEN |
together | TOGETHER_API_KEY |
openrouter | OPENROUTER_API_KEY |
fireworks | FIREWORKS_API_KEY |
ollama | none (uses OLLAMA_BASE_URL) |
local | none |
.envLexoid 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:
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).
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{
"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.
from lexoid.api import parse
result = parse("document.pdf")
markdown = result["raw"]
for seg in result["segments"]:
print(seg["metadata"]["page"], seg["content"][:80])# 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")# 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)# 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")parse_with_schema returns a Python list. The exact shape depends on
the mode and on what JSON the model emits:
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]).
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)from lexoid.api import parse_to_latex
latex_source = parse_to_latex("paper.pdf", model="gpt-4o")# 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"]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 inputs require a Gemini model (the only provider with audio support).
result = parse("interview.mp3", model="gemini-2.5-flash")
print(result["raw"])result = parse(
"doc.pdf",
model="gpt-4o",
api_cost_mapping="tests/api_cost_mapping.json",
)
print(result["token_cost"]) # {"input": ..., "output": ..., "input-image": ..., "total": ...}| kwarg | Purpose |
|---|---|
model | LLM model name (default from DEFAULT_LLM, falls back to gemini-2.5-flash). |
api_provider | Override inferred provider. |
framework | pdfplumber / pdfminer / paddleocr for STATIC_PARSE. |
temperature | LLM sampling temperature (default 0.0). |
max_tokens | LLM output token limit (default 1024, 4096 for Ollama). |
pages_per_split | Pages per parallel chunk. |
max_processes | Parallel workers (forced to 1 when parser_type="LLM_PARSE" and api_provider="ollama"). |
page_nums | Specific 1-indexed pages to parse (PDFs only). |
depth | Recursive URL parsing depth. |
as_pdf | Convert input to PDF before parsing. |
save_dir | Where to keep the intermediate PDF if as_pdf=True. |
return_bboxes | Attach bounding boxes per segment. |
bbox_framework | auto / pdfplumber / paddleocr. |
router_priority | speed / accuracy / cost for AUTO mode. |
character_threshold | Min char count for STATIC accept under cost priority. |
autoselect_llm | ML-based LLM choice in AUTO mode. |
retry_on_fail | Fall back to alternate parser on error (default True). |
max_image_dimension | Max px to which images / page renders are downscaled. |
api_cost_mapping | Dict or JSON path with per-model cost — enables token_cost in output. |
system_prompt / user_prompt | Override the default LLM prompts. |
verbose | Verbose logging during LLM parsing. |
raw. Empty raw with an error key means a recoverable failure occurred and Lexoid returned a stub.token_usage["total"] is non-zero — zero suggests the API call silently failed.len(result["segments"]) matches the expected page count (or len(page_nums) if used).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.docs/api.rst.lexoid-cli skill.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
Just SKILL.md in skills/lexoid-python of oidlabs-com/Lexoid.
Open the folder on GitHubat commit b45d174
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Lexoid Python this skilloidlabs-com/Lexoid | 109 | — | ~3.5k | Automated safety check: Notes | Apache-2.0 | |
| MineruNebutra/MinerU-Skill | 122 | — | ~1.4k | Automated safety check: Pass | MIT | |
| Doclingzhuzhaoyun/Molio | 431 | — | ~2.6k | Automated safety check: Pass | Custom licence | |
| MineruNebutra/MinerU-Skill | 122 | — | ~504 | Automated safety check: Pass | MIT | |
| Markdown ConverterTeam-Commonly/commonly | 1.4k | — | ~557 | Automated safety check: Pass | Apache-2.0 | |
| Ambiguity Reportlawve-ai/awesome-legal-skills | 826 | — | ~4.6k | Automated safety check: Pass | Apache-2.0 |
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.
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.
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.
Team-Commonly/commonly
Convert binary documents (PDF, DOCX, XLSX, PPTX, HTML, EPUB, images) to clean LLM-friendly Markdown using Microsoft's markitdown Python tool.
lawve-ai/awesome-legal-skills
Turn an interpretive-ambiguity audit of a legal text — contract, statute, regulation, or judicial opinion — into a polished deliverable.
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…
oidlabs-com/Lexoid
Parse and convert documents (PDFs, images, web pages, DOCX/XLSX/PPTX, audio) from the terminal using the lexoid CLI.
Categories
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.