← All skills
llm-integration
35 / 100 · High risk
Only if you trust the author. Some of what it can do is expected: a coding skill usually runs build and test commands.
By yonatangross/orchestkit (GitHub) · coding · 301 stars · scanned at commit 0d38e66
LLM integration patterns for function calling, streaming responses, local inference with Ollama, and fine-tuning customization. Use when implementing tool use, SSE streaming, local model deployment, LoRA/QLoRA fine-tuning, or multi-provider LLM APIs.
Works with any agent that supports SKILL.md skills.
What this skill can do
Sends data to these websites: ollama.com, api.openai.com, example.com
The author does not mention this. It runs automatically when the plugin is installed.
Found in 41 places.
Show 17 more
- plugins/ork/skills/llm-integration/rules/local-ollama-setup.md, line 91
curl http://localhost:11434/api/tags - plugins/ork/skills/llm-integration/rules/streaming-backpressure.md, line 47
const response = await fetch("/chat/stream?prompt=" + encodeURIComponent(prompt), { - plugins/ork/skills/llm-integration/rules/streaming-sse.md, line 13
from openai import AsyncOpenAI - plugins/ork/skills/llm-integration/rules/streaming-sse.md, line 56
const response = await fetch("/chat/stream?prompt=" + encodeURIComponent(prompt)); - plugins/ork/skills/llm-integration/scripts/function-def.py, line 17
from openai import AsyncOpenAI - plugins/ork/skills/llm-integration/scripts/ollama-provider-template.py, line 202
response = httpx.get(f"{config.host}/api/tags", timeout=5.0) - plugins/ork/skills/llm-integration/scripts/ollama-provider-template.py, line 204
except httpx.HTTPError: - plugins/ork/skills/llm-integration/scripts/ollama-provider-template.py, line 287
response = httpx.get(f"{config.host}/api/tags", timeout=5.0) - plugins/ork/skills/llm-integration/scripts/ollama-provider-template.py, line 289
except httpx.HTTPError: - plugins/ork/skills/llm-integration/scripts/ollama-provider-template.py, line 364
response = httpx.get(f"{config.host}/api/tags", timeout=5.0) - plugins/ork/skills/llm-integration/scripts/ollama-provider-template.py, line 366
except httpx.HTTPError: - plugins/ork/skills/llm-integration/scripts/ollama-provider-template.py, line 384
async with httpx.AsyncClient() as client: - plugins/ork/skills/llm-integration/scripts/ollama-provider-template.py, line 386
with contextlib.suppress(httpx.HTTPError): - plugins/ork/skills/llm-integration/scripts/ollama-provider-template.py, line 394
with contextlib.suppress(httpx.HTTPError): - plugins/ork/skills/llm-integration/scripts/ollama-provider-template.py, line 412
response = httpx.get(f"{config.host}/api/tags", timeout=5.0) - plugins/ork/skills/llm-integration/scripts/ollama-provider-template.py, line 417
except httpx.HTTPError: - plugins/ork/hooks/README.md, line 1510
(count unchanged at 175, 2026-08-30, #3322 sandbox posture): `pretool/bash/network-egress-guard` stands its ASK tier down when CC's own Bash sandbox is on with
and 21 more places
Downloads and installs other software
The author does not mention this. It runs automatically when the plugin is installed.
Found in 10 places.
Show 7 more
- plugins/ork/hooks/README.md, line 165
- `pretool/bash/network-egress-guard` - Deny commands that execute fetched remote content (`curl url | sh`) - plugins/ork/hooks/README.md, line 1586
(count unchanged, 2026-07-24): pretool/bash network-egress-guard DENY tier is now QUOTE-AWARE (#3122). It scanned `normalizeSingle(raw)`, which strips quote cha - plugins/ork/hooks/README.md, line 1588
(count unchanged, 2026-07-24): pretool/bash compound-command-validator deny for a process substitution feeding an interpreter (`bash <(curl x)`, `python3 <(curl - plugins/ork/hooks/dist/permission.mjs, line 13
`)}catch{}}function ht(t,e,n,r){let o=dt(t,e);if(b(o))try{let s=$t(o,"utf8");if(j(s)===j(n))return l(r,`Rules file ${e} unchanged, skipping write`),!1}catch{}re - plugins/ork/hooks/dist/pretool.mjs, line 20
${s}`)}function Sr(t){let e=t.replace(/\\\s*[\r\n]+/g," ");if(/\n/.test(e))return!0;let n=Ot(t);if(/(?:&&|\|\||[|;])/.test(n))return!0;let r=_r(yr(t)),o=Xe(br(r - plugins/ork/hooks/dist/pretool.mjs, line 117
`);return e.log(kt,`Consolidated ${n.length} hooks into ${r}t`),x(o,t)}var nd="headless-defer",rd=["Bash(git push --force*)","Bash(git push -f*)","Bash(npm publ - plugins/ork/hooks/dist/setup.mjs, line 22
Run 'npm audit' or 'pip-audit' for full details.`;if(vt(r,S),e.log("dependency-version-check",g),u>0||f>0)return m(S,t)}else vt(r,"none"),e.log("dependency-vers
Can call paid AI services billed to you
The author does not mention this.
Found in 2 places.
Reads your saved credentials, such as SSH keys or .env files
The author does not mention this. It runs automatically when the plugin is installed.
Found in 7 places.
Show 4 more
- plugins/ork/settings.json, line 14
"Read(~/.netrc)", - plugins/ork/settings.json, line 15
"Read(~/.npmrc)", - plugins/ork/hooks/README.md, line 1562
(218 -> 219, global 152 -> 153, 2026-08-09): added `pretool/read/credential-read-guard`, the first PreToolUse hook on the Read tool that can deny. `src/settings - plugins/ork/hooks/dist/lifecycle.mjs, line 22
`)}catch{}Oo(t,e)}}import{existsSync as ip,readFileSync as cp}from"node:fs";function xn(){let t=U();if(!ip(t))return 0;try{let n=JSON.parse(cp(t,"utf-8")).tools
Changes files outside its own folder
The author does not mention this. It runs automatically when the plugin is installed.
Found in 1 place.
Runs commands on your computer
The author does not mention this. It runs automatically when the plugin is installed. Expected for a coding skill.
Found in 160 places.
Show 17 more
- plugins/ork/hooks/README.md, line 1556
(count unchanged, 2026-08-10): `posttool/bash/session-heartbeat-publisher` now tracks the persistent Bash shell's cwd, and `pretool/bash/git-validator`'s third - plugins/ork/hooks/README.md, line 1586
(count unchanged, 2026-07-24): pretool/bash network-egress-guard DENY tier is now QUOTE-AWARE (#3122). It scanned `normalizeSingle(raw)`, which strips quote cha - plugins/ork/hooks/bin/stop-uncommitted-check.mjs, line 23
import { execFileSync } from 'node:child_process'; - plugins/ork/hooks/bin/stop-uncommitted-check.mjs, line 83
const raw = execFileSync( - plugins/ork/hooks/dist/lifecycle.mjs, line 14
`)}catch{}}function Q(t,e,n,r){let o=pn(t,e);if(ft(o))try{let s=zr(o,"utf8");if(ut(s)===ut(n))return g(r,`Rules file ${e} unchanged, skipping write`),!1}catch{} - plugins/ork/hooks/dist/lifecycle.mjs, line 22
`)}catch{}Oo(t,e)}}import{existsSync as ip,readFileSync as cp}from"node:fs";function xn(){let t=U();if(!ip(t))return 0;try{let n=JSON.parse(cp(t,"utf-8")).tools - plugins/ork/hooks/dist/lifecycle.mjs, line 31
Run 'npm audit' or 'pip-audit' for full details.`;if(Tn(r,k),e.log("dependency-version-check",m),u>0||p>0)return O(k,t)}else Tn(r,"none"),e.log("dependency-vers - plugins/ork/hooks/dist/lifecycle.mjs, line 36
`).filter(Boolean).slice(-20),n=[];for(let r of e)try{n.push(JSON.parse(r))}catch{}return n}catch{return[]}}function Tf(t){let e=new Map,n=[];for(let r of t){if - plugins/ork/hooks/dist/lifecycle.mjs, line 50
`}function Od(){let t=process.env.CLAUDE_CONFIG_DIR||_e(_(),".claude");return _e(t,"rules")}function xd(t,e){let n=Kn(t);for(;Kn(n)!==n;){if(te(_e(n,".claude"," - plugins/ork/hooks/dist/lifecycle.mjs, line 67
`);return e.log(ot,`Merged ${n.length} messages from SessionEnd hooks`),{continue:!0,systemMessage:o}}var si=!1;function um(){si||(Pe(),si=!0)}async function ii - plugins/ork/hooks/dist/lifecycle.mjs, line 103
`)}`)}var ze=["ork","debt"].join("-"),Gh=String.raw`(?:\/\/|#|--|;|\/\*|\*)`,Jh=new RegExp(`${Gh}\\s*${ze}:\\s*(.+)`,"i"),dr=["bash","c","cc","cjs","cpp","cs"," - plugins/ork/hooks/dist/lifecycle.mjs, line 111
`);return e.log("post-compact-recovery",`Recovered context after compaction #${o.compactionCount} (${s.activeFiles?.length||0} files, ${s.activeTasks?.length||0 - plugins/ork/hooks/dist/lifecycle.mjs, line 121
Keep options to 2\u20134 to match picker affordances. Unset ORK_ASK_FALLBACK to restore picker mode once CC ships an upstream fix.`;function Kc(t,e=d){return pr - plugins/ork/hooks/dist/lifecycle.mjs, line 122
`))r.startsWith("worktree ")&&n.add(br(r.slice(9).trim()));return n}catch{return null}}function Yc(t,e=0){if(e>Hk)return!1;let n;try{n=Sr(t)}catch{return!1}for( - plugins/ork/hooks/dist/lifecycle.mjs, line 126
`),e.log(m_,`Flagged dead analytics writer(s): ${o.map(s=>s.name).join(", ")}`),l())}import{execSync as nn}from"node:child_process";import{createHash as x_}from - plugins/ork/hooks/dist/notification.mjs, line 3
import{execFileSync as ee,spawn as ut}from"node:child_process";import{basename as ne}from"node:path";function s(){return{continue:!0,suppressOutput:!0}}function - plugins/ork/hooks/dist/notification.mjs, line 7
${n}`;return ut("notify-send",["--",t,r],{stdio:"ignore",windowsHide:!0,detached:!0}).unref(),!0}catch{return!1}}async function at(t,e=g){if(process.env.ORK_NO_
and 140 more places
Safer alternatives
Low-risk skills in the same category (coding) that look related. Check that one does what you need.
Other copies in this repository
yonatangross/orchestkit has 1 more folder with a skill named llm-integration. This page shows the lowest-scoring copy.
Install
Paste this into your terminal. It downloads exactly the version we scanned, not whatever is newest.
if [ -e ~/.agents/skills/'llm-integration' ] || [ -L ~/.agents/skills/'llm-integration' ]; then echo 'A skill folder named llm-integration already exists — not replacing it' >&2; false; else d=$(mktemp -d) && git clone --quiet --filter=blob:none --no-checkout 'https://github.com/yonatangross/orchestkit' "$d" && git -C "$d" checkout --quiet '0d38e66123f2a4a70737bfae758df796070f07df' -- 'plugins/ork/skills/llm-integration' && mkdir -p ~/.agents/skills && cp -R "$d"/'plugins/ork/skills/llm-integration' ~/.agents/skills/'llm-integration' && rm -rf "$d"; fi
Codex reads ~/.agents/skills directly. For Claude Code, Cursor, Copilot, Gemini CLI, Antigravity or OpenCode, also link it. For Claude Code: ln -s ~/.agents/skills/'llm-integration' ~/.claude/skills/'llm-integration' (other agents: ~/.cursor/skills, ~/.copilot/skills, ~/.gemini/skills, ~/.gemini/config/skills, ~/.config/opencode/skills). Or install through the finder skill, which does both.
Badge for your README
The badge for yonatangross/orchestkit shows the score of its lowest-scoring skill.

[](https://zalavijaysinh.github.io/skilltrust/repos/yonatangross/orchestkit/)
Score history
| Date | Version | Score |
|---|
| 2026-11-10 | 0d38e66 | 35 |
| 2026-11-07 | caa5346 | 90 |