agentsclimarketplace

Hook sdk integration

Skill chkim-su/forge-editor/skills/hook-sdk-integration

LLM invocation patterns from hooks via SDK. Use when you need background agents, CLI calls, or cost optimization.From its SKILL.md

Install
npx -y skills add chkim-su/forge-editor --skill hook-sdk-integration

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

2.4 KB, as published. Nobody here has run it

Hook SDK Integration

Patterns for invoking LLM calls from hooks using u-llm-sdk/claude-only-sdk.

IMPORTANT: SDK Detailed Guide

Load when implementing SDK:

Skill("forge-editor:llm-sdk-guide")

This skill covers SDK call pattern interfaces. llm-sdk-guide covers SDK detailed APIs and types.

Quick Start

# Background agent pattern (non-blocking)
(python3 sdk-agent.py "$INPUT" &)
echo '{"status": "started"}'
exit 0

Key Findings (Verified: 2025-12-30)

ItemResult
SDK callsPossible from hooks
Latency~30s (CLI session initialization)
BackgroundNon-blocking execution possible (0.01s return)
CostIncluded in subscription (no additional API cost)

Architecture

Hook (bash) → Background (&) → SDK (Python) → CLI → Subscription usage
     │                                                    │
     └─── Immediate return (0.01s) ───────────────────────┘

Pattern Selection

SituationPatternReason
Need fast evaluationtype: "prompt"In-session execution, fast
Need isolationDirect CLI callSeparate MCP config possible
Complex logicSDK + BackgroundType-safe, non-blocking
Cost reductionLocal LLM (ollama)Free, privacy

SDK Configuration (Python)

from u_llm_sdk import LLM, LLMConfig
from llm_types import Provider, ModelTier, AutoApproval

config = LLMConfig(
    provider=Provider.CLAUDE,
    tier=ModelTier.LOW,
    auto_approval=AutoApproval.FULL,
    timeout=60.0,
)

async with LLM(config) as llm:
    result = await llm.run("Your prompt")

Cost Structure

MethodCost
type: "prompt"Included in subscription
Claude CLIIncluded in subscription
SDK via CLIIncluded in subscription
Direct APIPer-token billing

References

Keep looking

Skills are one crate of 627,801. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.