Markitdown
ImCa0/just-laws
Convert files and office documents to Markdown. An agent skill from ImCa0/just-laws.
Upload a file to the Content Search backend and poll the ingestion task until the file is fully indexed (status COMPLETED).
$ npx skills add open-edge-platform/edge-ai-suites --skill sc-upload -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install open-edge-platform/edge-ai-suites sc-upload --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/open-edge-platform/edge-ai-suites.git skills-src && mkdir -p .claude/skills && cp -r skills-src/education-ai-suite/.github/skills/sc-upload .claude/skills/sc-upload && 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 "sc-upload" agent skill from https://github.com/open-edge-platform/edge-ai-suites/tree/main/education-ai-suite/.github/skills/sc-upload into .claude/skills/sc-upload/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sc-upload", 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/open-edge-platform/edge-ai-suites/tree/main/education-ai-suite/.github/skills/sc-uploadType 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 open-edge-platform/edge-ai-suites --skill sc-upload -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install open-edge-platform/edge-ai-suites sc-upload --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/open-edge-platform/edge-ai-suites.git skills-src && mkdir -p .agents/skills && cp -r skills-src/education-ai-suite/.github/skills/sc-upload .agents/skills/sc-upload && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "sc-upload" agent skill from https://github.com/open-edge-platform/edge-ai-suites/tree/main/education-ai-suite/.github/skills/sc-upload into .agents/skills/sc-upload/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sc-upload", 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 open-edge-platform/edge-ai-suites --skill sc-upload -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install open-edge-platform/edge-ai-suites sc-upload --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/open-edge-platform/edge-ai-suites.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/education-ai-suite/.github/skills/sc-upload .cursor/skills/sc-upload && 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 "sc-upload" agent skill from https://github.com/open-edge-platform/edge-ai-suites/tree/main/education-ai-suite/.github/skills/sc-upload into .cursor/skills/sc-upload/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sc-upload", 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/open-edge-platform/edge-ai-suites.git --path education-ai-suite/.github/skills/sc-upload--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 open-edge-platform/edge-ai-suites --skill sc-upload -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install open-edge-platform/edge-ai-suites sc-upload --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/open-edge-platform/edge-ai-suites.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/education-ai-suite/.github/skills/sc-upload .gemini/skills/sc-upload && 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 "sc-upload" agent skill from https://github.com/open-edge-platform/edge-ai-suites/tree/main/education-ai-suite/.github/skills/sc-upload into .gemini/skills/sc-upload/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sc-upload", 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 open-edge-platform/edge-ai-suites sc-uploadInstalls 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 open-edge-platform/edge-ai-suites --skill sc-upload -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/open-edge-platform/edge-ai-suites.git skills-src && mkdir -p .github/skills && cp -r skills-src/education-ai-suite/.github/skills/sc-upload .github/skills/sc-upload && 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 "sc-upload" agent skill from https://github.com/open-edge-platform/edge-ai-suites/tree/main/education-ai-suite/.github/skills/sc-upload into .github/skills/sc-upload/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sc-upload", 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 open-edge-platform/edge-ai-suites --skill sc-upload -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install open-edge-platform/edge-ai-suites sc-upload --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/open-edge-platform/edge-ai-suites.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/education-ai-suite/.github/skills/sc-upload .opencode/skills/sc-upload && 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 "sc-upload" agent skill from https://github.com/open-edge-platform/edge-ai-suites/tree/main/education-ai-suite/.github/skills/sc-upload into .opencode/skills/sc-upload/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sc-upload", 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.
sc-uploadUpload a file to the Content Search backend and poll the ingestion task until the file is fully indexed (status COMPLETED).
Sc Upload is an agent skill from open-edge-platform/edge-ai-suites. Upload a file to the Content Search backend and poll the ingestion task until the file is fully indexed (status COMPLETED). Handles duplicate detection (code 40901), cleanup-and-retry, and task timeout. Supported file types: pdf, txt, docx, doc, pptx, ppt, xlsx, xls, jpg, jpeg, png, mp4, avi, mov, mkv. Use when the user says "upload a file", "ingest a document", "upload pdf", "index a file", "add course material", "upload video", "upload image", or "ingest content".
Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/upload-request.md`).
It sits in Documents & Office, covering PowerPoint presentations, Word documents and Excel spreadsheets. It works with Microsoft Excel, Microsoft PowerPoint and Microsoft Word. The repository describes itself as: A curated collection of sample applications intended for reference in developing optimized AI solutions and testing hardware performance across various industry use cases. The licence is Apache-2.0.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 6e2ba00. 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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are powershell and json).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
FILE_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Sc Upload loads about 2.6k tokens when it runs, and up to ~3.1k if it reads all its reference files. Until then it costs about 120 tokens; SKILL.md has 841 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 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.
The full file from open-edge-platform/edge-ai-suites at commit 6e2ba00, republished under its Apache-2.0 licence (© open-edge-platform). 841 words, ~2,578 tokens.
.claude/skills/sc-upload/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Upload a file to the Content Search backend and wait for ingestion to complete.
Agent: execute every command below directly using your terminal tool and relay
the output. Endpoints use the base URL http://127.0.0.1:9011.
Set $BASE = "http://127.0.0.1:9011" for all snippets.
Probe health first — if the backend is unreachable, use
sc-doctor / sc-up:
$BASE = "http://127.0.0.1:9011"
# 200 = all services ready; 503 = degraded, body names the failing one
try { (Invoke-WebRequest -Uri "$BASE/api/v1/system/health" -UseBasicParsing).Content }
catch { $_.ErrorDetails.Message }The file must be one of the supported extensions:
pdf, txt, docx, doc, pptx, ppt, xlsx, xls,
jpg, jpeg, png, mp4, avi, mov, mkv.
🤖 Agent instruction: Before executing the command below, use the vscode_askQuestions tool to:
POST /api/v1/object/upload-ingest is a multipart form request with two fields:
file — the binary filemeta — a JSON string with optional metadata (tags, description)See references/upload-request.md for the
full meta schema.
$BASE = "http://127.0.0.1:9011"
# Agent: Set $FilePath to the user-provided file path from ask_user
$FilePath = "<USER_PROVIDED_FILE_PATH>"
# Agent: Set $Tags to user-provided tags (or empty string if none)
$Tags = "<USER_PROVIDED_TAGS_OR_EMPTY>"
# Determine file type from extension
$extension = [System.IO.Path]::GetExtension($FilePath).TrimStart('.').ToLower()
$fileType = switch ($extension) {
{ $_ -in @('pdf','txt','docx','doc','pptx','ppt','xlsx','xls') } { "document" }
{ $_ -in @('jpg','jpeg','png') } { "image" }
{ $_ -in @('mp4','avi','mov','mkv') } { "video" }
default { "document" }
}
$fileName = [System.IO.Path]::GetFileName($FilePath)
# Manually construct JSON to ensure tags is always an array (not a string)
if ($Tags) {
$tagsList = ($Tags -split ',' | ForEach-Object { "`"$($_.Trim())`"" }) -join ","
$meta = "{`"file_name`":`"$fileName`",`"type`":`"$fileType`",`"tags`":[$tagsList]}"
} else {
$meta = "{`"file_name`":`"$fileName`",`"type`":`"$fileType`"}"
}
# Build multipart form and POST
Add-Type -AssemblyName System.Net.Http
$client = [System.Net.Http.HttpClient]::new()
$content = [System.Net.Http.MultipartFormDataContent]::new()
$fileBytes = [System.IO.File]::ReadAllBytes($FilePath)
$fileContent = [System.Net.Http.ByteArrayContent]::new($fileBytes)
$fileContent.Headers.ContentType =
[System.Net.Http.Headers.MediaTypeHeaderValue]::Parse("application/octet-stream")
$content.Add($fileContent, "file", $fileName)
$content.Add([System.Net.Http.StringContent]::new($meta), "meta")
$response = $client.PostAsync("$BASE/api/v1/object/upload-ingest", $content).Result
$body = $response.Content.ReadAsStringAsync().Result | ConvertFrom-Json
$body | ConvertTo-Json -Depth 5Expected response:
{
"code": 20000,
"data": {
"task_id": "<TASK_ID>",
"status": "PROCESSING",
"file_key": "<FILE_KEY>"
},
"message": "Success",
"timestamp": 1234567890
}Duplicate detection: if
code == 40901, the file already exists (detected by SHA256 hash). The response includes the existingtask_idandfile_hash. Re-upload is allowed if the previous task status isFAILED. Go to step 1b (cleanup and retry) or skip directly to step 2 to poll the existing task.
The cleanup endpoint deletes:
runs/{run_id}/ (raw files, derived files, OCR outputs)# Agent: Extract task_id from the 40901 response ($body.data.task_id)
$TASK_ID = $body.data.task_id
Invoke-WebRequest -Uri "$BASE/api/v1/object/cleanup-task/$TASK_ID" `
-Method Delete -UseBasicParsing
# Now retry the upload from step 1[!NOTE] Cleanup fails if the task status is
PROCESSING. Wait for completion or failure first.
Poll GET /api/v1/task/query/{task_id} every 3 seconds.
Terminal statuses are COMPLETED and FAILED.
[!NOTE] The
progressfield is always 100 (hardcoded) and is not a real progress indicator. Status transitions are:QUEUED→PROCESSING→COMPLETED/FAILED.
# Agent: Extract $TASK_ID from the response in step 1 ($body.data.task_id)
$TASK_ID = $body.data.task_id
$deadline = (Get-Date).AddMinutes(10)
do {
Start-Sleep -Seconds 3
$r = Invoke-WebRequest -Uri "$BASE/api/v1/task/query/$TASK_ID" `
-UseBasicParsing
$task = ($r.Content | ConvertFrom-Json).data
Write-Host "[$([datetime]::Now.ToString('HH:mm:ss'))] status=$($task.status) progress=$($task.progress)"
if ($task.status -in @("COMPLETED","FAILED")) { break }
} while ((Get-Date) -lt $deadline)
Write-Host "Final status: $($task.status)"COMPLETED → file is indexed and ready for Q&A. Note the file_key for deletion later. If the file is a PDF and OCR is enabled, the result will include ocr_text_key. If video summarization was requested, result includes video_summary and video_summary_status.FAILED → ingestion error. Read task.result.error for the reason; check backend logs with sc-doctor. Failed tasks trigger automatic cleanup of FileAsset, physical file, and ChromaDB entries.sc-doctor.$r = Invoke-WebRequest -Uri "$BASE/api/v1/object/files/list?page=1&page_size=20" `
-UseBasicParsing
$files = ($r.Content | ConvertFrom-Json).data.files
$files | Select-Object file_name, @{N="type";E={$_.meta.type}}, @{N="vectors";E={$_.index.vector_count}}, status |
Format-Table -AutoSizeNote: The file is searchable when the task status is COMPLETED. Vector indexing may
take a few additional seconds to appear in the list, but the task completion is the
source of truth for searchability.
When OCR_ENABLED=true (environment variable), PDF files are automatically processed:
http://127.0.0.1:8000 (timeout: 120s).ocr.txt file in the same run directorytask.result includes ocr_text_key pointing to the extracted textWhen VIDEO_SUMMARIZATION_ENABLED=true (default), videos can be summarized:
vs_enabled: true in the meta object to enable per-fileprompt and chunk_duration in the upload requestCOMPLETED (file is already searchable)task.result includes video_summary and video_summary_statusruns/{run_id}/derived/PDF and video files (PDF, MP4, AVI, MOV, MKV) undergo integrity validation:
error_type: "corrupted_file"When indexing fails, the backend automatically cleans up:
This prevents orphaned data and allows re-upload with the same file.
| Code | Meaning | Action |
|---|---|---|
20000 | Success | Continue to next step |
40000 | Bad request | Check request parameters |
40002 | Invalid file | File failed validation (unsupported type) |
40901 | File already exists (duplicate) | Cleanup and retry, or poll existing task |
41301 | File too large | Reduce file size or increase backend limits |
50002 | Task not found | Task may have expired or been deleted |
50003 | Process failed | Check backend logs for details |
| Symptom | Likely cause | Action |
|---|---|---|
code: 40901 | File already exists (duplicate hash) | Cleanup task (step 1b) then retry, or skip to step 2 if re-uploading after FAILED task |
code: 40002 | Invalid/unsupported file type | Check file extension against allowed list; convert to supported format |
code: 41301 | File too large | Default limits: documents 100MB, videos 1024MB; check/update env vars DOCUMENT_MAX_MB, VIDEO_MAX_MB |
FAILED status | Ingestion pipeline error | Check task.result.error; check backend logs via sc-doctor |
| Timeout after 10 min | Backend overloaded or stalled | Restart backend (sc-up); reduce file size |
| Connection reset during upload | Large video upload timeout | Backend accepts large files; check network/firewall settings |
| Corrupted file error | File integrity check failed | Re-download or re-export the file; ensure proper encoding |
| OCR timeout | OCR service unavailable | Ensure OCR service is running at port 8000; check OCR_ENABLED env var |
Report: task_id → status polling log → final COMPLETED →
file appears in GET /api/v1/object/files/list.
Note: Task COMPLETED status means the file is searchable. Vector counts in the file
list may take a few seconds to update, but searchability is determined by task completion.
© open-edge-platform, 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
SKILL.md and 1 other file (references) in education-ai-suite/.github/skills/sc-upload of open-edge-platform/edge-ai-suites.
Open the folder on GitHubat commit 6e2ba00
Sc Upload 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 |
|---|---|---|---|---|---|---|
| Sc Upload this skillopen-edge-platform/edge-ai-suites | 140 | — | ~2.6k | Automated safety check: Pass | Apache-2.0 | |
| MarkitdownImCa0/just-laws | 781 | 14 repos | ~3.2k | Automated safety check: Notes | MIT | |
| Markitdownjimmc414/Kosmos | 594 | 2 repos | ~1.7k | Automated safety check: Pass | None | |
| Office DocumentsZS520L/HanakoPro | 102 | — | ~1.6k | Automated safety check: Pass | Apache-2.0 | |
| PaperJSX Document Generatorcomposio-community/awesome-codex-skills | 17k | — | ~842 | Automated safety check: Pass | Apache-2.0 | |
| Skill Doc Deliverynyldn/claude-octopus | 4.2k | 1 repos | ~2.4k | Automated safety check: Pass | MIT |
ImCa0/just-laws
Convert files and office documents to Markdown. An agent skill from ImCa0/just-laws.
jimmc414/Kosmos
Convert various file formats (PDF, Office documents, images, audio, web content, structured data) to Markdown optimized for LLM processing.
ZS520L/HanakoPro
A skill your agent uses when the user asks to open, read, inspect, understand, summarize, analyze, extract tables/text from, modify, update, repair, split, merge, rotate, or convert information from…
composio-community/awesome-codex-skills
Generates PPTX, DOCX, XLSX and PDF files from a JSON layout spec through PaperJSX's packages, creating new documents rather than editing them.
nyldn/claude-octopus
Convert markdown to DOCX, PPTX, XLSX, PDF office documents — use when you need exportable deliverables
ZeKaiNie/universal-examprep-skill
从学生上传的课件/大纲/老师勾的重点/真题,一键初始化并验证备考工作区:解析 PDF、DOCX、PPTX、 XLSX、常见独立图片与 txt/md,建立分章节 LLM Wiki、标准题库、结构化接管队列与进度状态;仅在 Python 确实无法运行时 明确降级为手动写盘。当工作区尚未建立、资料发生变化、或建库 readiness 被阻断时使用。
open-edge-platform/edge-ai-suites
Validate the get-started experience of Open Edge Platform (OEP) software components from the perspective of a first-time user.
open-edge-platform/edge-ai-suites
Ask a natural-language question against indexed content via the Content Search RAG Q&A endpoint.
open-edge-platform/edge-ai-suites
Build an end-to-end UAV object detection and telemetry overlay application on Intel hardware using DL Streamer Pipeline Server with MAVLink telemetry.
open-edge-platform/edge-ai-suites
Generic RAG query skill - Retrieve any information from the local knowledge base and generate structured reports, summaries, or Q&A responses.
open-edge-platform/edge-ai-suites
Run, start, or smoke-test the Live Video Captioning app (Docker Compose stack with dashboard on :4173).
open-edge-platform/edge-ai-suites
Diagnose Content Search backend availability by probing the health endpoint, then surface connectivity issues between Flutter and backend when unhealthy.
Categories
Upload a file to the Content Search backend and poll the ingestion task until the file is fully indexed (status COMPLETED). Sc Upload is an agent skill from open-edge-platform/edge-ai-suites. Upload a file to the Content Search backend and poll the ingestion task until the file is fully indexed (status COMPLETED).
Sc Upload fits situations like: the user says upload a file; ingest a document; add course material.
Run `npx skills add open-edge-platform/edge-ai-suites --skill sc-upload -a claude-code`. Or copy the skill folder (education-ai-suite/.github/skills/sc-upload in open-edge-platform/edge-ai-suites) into .claude/skills/sc-upload in your project. Claude Code loads it when a task matches its description.
Run `npx skills add open-edge-platform/edge-ai-suites --skill sc-upload -a codex`. Or copy the skill folder (education-ai-suite/.github/skills/sc-upload in open-edge-platform/edge-ai-suites) into .agents/skills/sc-upload 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 open-edge-platform/edge-ai-suites --skill sc-upload -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/sc-upload, .gemini/skills/sc-upload, .github/skills/sc-upload and .opencode/skills/sc-upload in your project.
Going by SKILL.md and its folder, Sc Upload needs credentials named FILE_KEY. Our summary lists: A credential in FILE_KEY.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
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.
Sc Upload 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 2.6k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 572 tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Sc Upload: Markitdown (ImCa0/just-laws, 781 stars), Markitdown (jimmc414/Kosmos, 594 stars), Office Documents (ZS520L/HanakoPro, 102 stars) and PaperJSX Document Generator (composio-community/awesome-codex-skills, 17k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
open-edge-platform (a GitHub organization) maintains it in open-edge-platform/edge-ai-suites, which has 140 GitHub stars. The repository holds 13 skills in this directory. The repository was last updated on October 7, 2026.
Source: open-edge-platform/edge-ai-suites on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.