
This is your Swiss Army knife for running AI agents across different LLM providers without rewriting code. It handles Claude, OpenAI, CrewAI, Lyzr, and GitHub Models through a unified interface, so you can swap adapters with a flag instead of refactoring. The git repo support is genuinely handy: point it at a repository and it'll clone, cache, and even auto-detect which adapter to use based on config files or model names. One-shot mode lets you fire off prompts without interactive sessions, and the caching system means you're not re-cloning repos every time. If you're experimenting with different LLM providers or maintaining agents that need to run on various platforms, this saves you from maintaining separate CLI wrappers for each one.
$ npx -y skills add open-gitagent/opengap --skill run-agent --agent claude-codeInstalls into .claude/skills of the current project.
When a user wants to run an agent locally, from a git repo, or with a specific adapter/framework.
If you see authentication errors:
claude auth status)OPENAI_API_KEY is set and validGITHUB_TOKEN has correct permissionsLYZR_API_KEY is active# Run local agent with Claude (default)
opengap run -d ./my-agent
# Run from git repo
opengap run -r https://github.com/user/agent
# Run with a prompt (one-shot mode)
opengap run -d ./my-agent -p "Review my code"
| Adapter | Flag | Env Var Required | Interactive |
|---|---|---|---|
| Claude | -a claude | (uses Claude Code auth) | Yes |
| OpenAI | -a openai | OPENAI_API_KEY | No |
| CrewAI | -a crewai | — | No |
| OpenClaw | -a openclaw | ANTHROPIC_API_KEY | No (-p required) |
| Nanobot | -a nanobot | ANTHROPIC_API_KEY | Yes |
| Lyzr | -a lyzr | LYZR_API_KEY | No (-p required) |
| GitHub | -a github | GITHUB_TOKEN | No (-p required) |
| Git | -a git | (auto-detects) | Depends |
| Prompt | -a prompt | — | Print only |
# Claude (interactive)
opengap run -d ./my-agent
# GitHub Models (one-shot, streaming)
export GITHUB_TOKEN="ghp_..."
opengap run -d ./my-agent -a github -p "Explain this codebase"
# Lyzr (creates agent on Lyzr Studio + chats)
export LYZR_API_KEY="..."
opengap run -r https://github.com/user/agent -a lyzr -p "Hello"
# Lyzr one-liner (clone + create + chat)
opengap lyzr run -r https://github.com/user/agent -p "Hello"
# Auto-detect adapter from repo
opengap run -r https://github.com/user/agent -a git -p "Hello"
# Just print the system prompt
opengap run -d ./my-agent -a prompt
Repos cloned via -r are cached at ~/.gitagent/cache/:
# Use cache (default)
opengap run -r https://github.com/user/agent
# Force refresh
opengap run -r https://github.com/user/agent --refresh
# No cache (temp dir, deleted after)
opengap run -r https://github.com/user/agent --no-cache
-a git)The git adapter detects the best runner from the repo:
.gitagent_adapter file (explicit hint)Sponsors