s4wave/ocpipe(新しいタブで開きます)
主要言語: TypeScript
structured prompts ft. Zod
- star 数
- 5
- watcher 数
- 1
- fork 数
- 1
- issue 数
- 1
- 最終更新
- 2026/10/31
主要言語: TypeScript
structured prompts ft. Zod
ocpipe
Build LLM pipelines with Oh My Pi, OpenCode, Claude Code, Codex, Pi, and Zod.
Inspired by DSPy.
bun add ocpipe
import { signature, field, module, Pipeline, createBaseState } from 'ocpipe' const Greet = signature({ doc: 'Generate a friendly greeting for the given name.', inputs: { name: field.string('The name of the person to greet') }, outputs: { greeting: field.string('A friendly greeting message') }, }) const pipeline = new Pipeline( { name: 'hello-world', defaultModel: { backend: 'omp', modelID: 'gpt-5.5' }, checkpointDir: './ckpt', logDir: './logs', }, createBaseState, ) const result = await pipeline.run(module(Greet), { name: 'World' }) console.log(result.data.greeting) // Extract types from signatures import { InferInputs, InferOutputs } from 'ocpipe' type GreetIn = InferInputs<typeof Greet> // { name: string } type GreetOut = InferOutputs<typeof Greet> // { greeting: string }
ocpipe supports six backends for running LLM prompts:
Prime Agent - Uses the prime-agent CLI in headless JSON print mode and preserves sessions between pipeline steps.
defaultModel: { backend: 'prime', modelID: '' }, prime: { command: '/path/to/prime-agent.sh', thinking: 'high' },
Oh My Pi (default) - Uses the omp CLI in headless JSON print mode.
const pipeline = new Pipeline( { name: 'my-pipeline', defaultModel: { backend: 'omp', modelID: 'gpt-5.5' }, omp: { command: 'omp', approvalMode: 'yolo', thinking: 'high' }, }, createBaseState, )
OpenCode - Uses the opencode CLI. ocpipe passes prompt files directly and does not create or reference .opencode/agents definitions.
defaultModel: { backend: 'opencode', providerID: 'anthropic', modelID: 'claude-sonnet-4' }, opencode: { command: 'opencode' },
Claude Code - Uses @anthropic-ai/claude-agent-sdk. Install as a peer dependency.
// modelID: 'opus', 'sonnet', or 'haiku' defaultModel: { backend: 'claude-code', modelID: 'sonnet' }, // permissionMode: 'default' | 'acceptEdits' | 'bypassPermissions' | 'plan' claudeCode: { permissionMode: 'acceptEdits' },
Codex - Uses @openai/codex-sdk. Install as a peer dependency.
defaultModel: { backend: 'codex', modelID: 'gpt-5.4' }, codex: { sandbox: 'read-only', reasoningEffort: 'high' },
Pi - Uses the pi coding-agent CLI JSONL RPC mode.
defaultModel: { backend: 'pi', modelID: 'gemma' }, pi: { command: 'pi' },
For Prime Agent: Install prime-agent or configure prime.command, then authenticate its provider.
For Oh My Pi: Install the omp CLI and authenticate the models it uses.
For OpenCode backend: Install the opencode CLI and authenticate the providers it uses. ocpipe does not require a .opencode directory.
For Claude Code backend: Install the SDK as a peer dependency:
bun add @anthropic-ai/claude-agent-sdk
For Codex backend: Install the Codex SDK package as a peer dependency:
bun add @openai/codex-sdk
An Aperture Robotics project.