Procedure verification for AR/XR with memory, visual sessions, and DPO trajectory export.
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"openeye": {
"env": {
"ANTHROPIC_API_KEY": "sk-ant-..."
},
"args": [
"sidecar/mcp_server.py"
],
"command": "python3"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
alpha software. interfaces may change. file issues at > github.com/dumbspacecookie/openeye.
Run this in your terminal to verify the server starts. Then let us know if it worked — your result helps other developers.
npx -y '@dumbspacecookie/openeye' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
Checked @dumbspacecookie/openeye against OSV.dev.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in other
Pi Coding Agent extension (CLI-first) — routes bash/read/grep/find/ls through lean-ctx CLI for strong token savings. Optional MCP bridge can register advanced tools.
Compress tool outputs, logs, files, and RAG chunks before they reach the LLM. 60-95% fewer tokens, same answers. Library, proxy, MCP server.
97% token reduction for AI coding sessions — zero deps, 21 languages, MCP server
Autonomous spec-to-product coding-agent CLI with an MCP server exposing 34 tools over stdio.
MCP Security Weekly
Get CVE alerts and security updates for io.github.dumbspacecookie/openeye and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
alpha software. interfaces may change. file issues at github.com/dumbspacecookie/openeye.
every AR headset maker — HoloLens, Snap Spectacles, Apple, Android — ships a device that can see. none of them ship a brain. every developer building on these platforms has to figure out the intelligence layer themselves, from scratch, every time, for every device. the work doesn't compound. what one team learns on HoloLens doesn't help the team building on WebXR. every deployment is a silo.
OpenEye is the shared brain.
a thin piece of software sits on the device, captures what the camera sees, and turns it into a natural-language description of the scene. that description goes to OpenEye. OpenEye runs an AI agent with tools for verifying procedure steps, recalling prior sessions, and writing down what it learns. each session becomes structured memory the agent can search later, and an exportable training trajectory you can fine-tune on.
OpenEye doesn't ship a vision model — you bring your own. drop in Claude vision, GPT-4o, Gemini, Groq Llama vision, or a local Ollama model with moondream/llava. a working reference adapter for both cloud and local is in examples/vision-adapter/.
npm install @dumbspacecookie/openeye
pip install -r node_modules/@dumbspacecookie/openeye/sidecar/requirements.txt
the Python sidecar (FastAPI + SQLite) handles state and auto-spawns when you create an agent — you don't have to start it yourself.
prefer to hack on it locally? clone instead:
git clone https://github.com/dumbspacecookie/openeye.git
cd openeye && npm install && npm run build
pip install -r sidecar/requirements.txt
import { OpenEyeAgent, setupProviders, makeStreamFn, ANTHROPIC_SONNET } from "@dumbspacecookie/openeye";
import { describeFrameWithClaude } from "./examples/vision-adapter/claude-vision-adapter.js";
import * as fs from "node:fs";
setupProviders();
const agent = await OpenEyeAgent.create({
model: ANTHROPIC_SONNET,
streamFn: makeStreamFn(),
systemPrompt: "You are a procedure assistant. Verify steps with precision.",
tenantId: "your-org",
});
const vsId = await agent.client.createVisualSession({
deviceType: "android-tablet",
procedureId: "bolt-assembly-v1",
procedureName: "M6 Bolt Assembly",
});
// 1. vision adapter (you bring this) turns a camera frame into text
const frameBytes = fs.readFileSync("./frame.jpg");
const description = await describeFrameWithClaude(
frameBytes,
"Operator is installing an M6 bolt. Describe hand position, tool, and bolt state.",
);
// 2. OpenEye logs the description and lets the agent verify the step
const frameId = await agent.client.logFrame({
visualSessionId: vsId!,
sequenceNum: 1,
sceneDescription: description,
stepContext: "step-1-position-bracket",
});
await agent.prompt(`Frame 1: ${description}\nVerify step-1-position-bracket.`);
await agent.client.endVisualSession(vsId!, "completed");
await agent.captureAndClose({ completed: true, visualSessionId: vsId! });
no API key for the agent? run it locally with Ollama:
ollama pull llama3.3
import { ollamaModel } from "@dumbspacecookie/openeye";
const agent = await OpenEyeAgent.create({ model: ollamaModel("llama3.3"), streamFn: make
... [View full README on GitHub](https://github.com/dumbspacecookie/openeye#readme)