Skip to content

Commit e67a52b

Browse files
Merge pull request #6 from EvilFreelancer/feat/openclaw-skill-and-comparison
Add OpenClaw skill, fair 4-strategy benchmark, and mcp2cli comparison
2 parents 3453d51 + b58d88f commit e67a52b

4 files changed

Lines changed: 530 additions & 141 deletions

File tree

README.md

Lines changed: 45 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -28,31 +28,34 @@ When an agent has access to 200+ API endpoints, loading all of them as MCP tools
2828

2929
### Comparison
3030

31-
| Feature | ocli | [openapi-cli-generator](https://github.com/danielgtaylor/openapi-cli-generator) | [CLI-Anything](https://github.com/HKUDS/CLI-Anything) |
32-
|---------|:----:|:---------------------:|:-------------:|
33-
| Runtime interpretation (no codegen) ||||
34-
| Works without LLM ||||
35-
| Zero-setup install (`npx`) ||||
36-
| Instant API onboarding (seconds) ||||
37-
| Multiple API profiles in one binary ||||
38-
| Multiple endpoint sets per API ||||
39-
| BM25 command search ||||
40-
| Regex command search ||||
41-
| Per-profile endpoint filtering ||||
42-
| OpenAPI/Swagger spec (JSON + YAML) ||||
43-
| Spec caching with refresh ||||
44-
| Add new API without recompile ||||
45-
| Non-HTTP integrations (desktop apps) ||||
46-
| Session management / undo-redo ||||
47-
| JSON structured output ||||
48-
| Custom HTTP headers ||||
49-
| Command name prefix ||||
50-
| Basic / Bearer auth ||||
51-
| OAuth2 / Auth0 ||||
52-
| Response JMESPath filtering ||||
53-
| Syntax-highlighted output ||||
54-
| Auto-generated tests ||||
55-
| Active project || ❌ (deprecated) ||
31+
| Feature | ocli | [mcp2cli](https://github.com/knowsuchagency/mcp2cli) | [openapi-cli-generator](https://github.com/danielgtaylor/openapi-cli-generator) | [CLI-Anything](https://github.com/HKUDS/CLI-Anything) |
32+
|---------|:----:|:------:|:---------------------:|:-------------:|
33+
| Runtime interpretation (no codegen) |||||
34+
| Works without LLM |||||
35+
| Zero-setup install (`npx`/`uvx`) |||||
36+
| Instant API onboarding (seconds) |||||
37+
| Multiple API profiles in one binary || ✅ (bake mode) |||
38+
| Multiple endpoint sets per API || ✅ (include/exclude globs) |||
39+
| BM25 command search || ❌ (substring only) |||
40+
| Regex command search |||||
41+
| Per-profile endpoint filtering |||||
42+
| OpenAPI/Swagger spec (JSON + YAML) |||||
43+
| MCP server support || ✅ (HTTP/SSE/stdio) |||
44+
| GraphQL support || ✅ (introspection) |||
45+
| Spec caching with refresh || ✅ (1h TTL) |||
46+
| Add new API without recompile |||||
47+
| Non-HTTP integrations (desktop apps) |||||
48+
| Session management / undo-redo || ✅ (daemon sessions) |||
49+
| JSON structured output || ✅ (JSON + TOON) |||
50+
| Custom HTTP headers |||||
51+
| Command name prefix |||||
52+
| Basic / Bearer auth |||||
53+
| OAuth2 / Auth0 || ✅ (PKCE + client credentials) |||
54+
| Response jq/JMESPath filtering || ✅ (jq) | ✅ (JMESPath) ||
55+
| Syntax-highlighted output |||||
56+
| Token-optimized output (TOON) || ✅ (40-60% savings) |||
57+
| Auto-generated tests |||||
58+
| Active project ||| ❌ (deprecated) ||
5659

5760
### High level idea
5861

@@ -335,21 +338,35 @@ The project mirrors parts of the `openapi-to-mcp` architecture but implements a
335338
- `bm25` - generic BM25 ranking engine with Robertson IDF smoothing and min-heap top-K extraction.
336339
- `cli` - entry point, argument parser, command registration, help output.
337340

338-
### Using with AI agents (Claude Code skill example)
341+
### Using with AI agents
339342

340-
An example skill file is provided in [`examples/skill-ocli-api.md`](examples/skill-ocli-api.md). Copy it to `.claude/skills/api.md` in your project to let Claude Code discover and use your API via `ocli`:
343+
#### OpenClaw skill
344+
345+
Install the [ocli-api](https://clawhub.ai/skills/ocli-api) skill from [ClawHub](https://clawhub.ai):
346+
347+
```bash
348+
clawhub install ocli-api
349+
```
350+
351+
Or manually copy [`skills/ocli-api/SKILL.md`](skills/ocli-api/SKILL.md) to `~/.openclaw/skills/ocli-api/SKILL.md`.
352+
353+
#### Claude Code skill
354+
355+
Copy the example skill to your project:
341356

342357
```bash
343358
cp examples/skill-ocli-api.md .claude/skills/api.md
344359
```
345360

346-
The agent workflow:
361+
#### Agent workflow
362+
347363
1. `ocli commands --query "upload file"` — discover the right command
348364
2. `ocli files_content_post --help` — check parameters
349365
3. `ocli files_content_post --file ./data.csv` — execute
350366

351367
### Similar projects
352368

369+
- [mcp2cli](https://github.com/knowsuchagency/mcp2cli) - Python CLI that converts MCP servers, OpenAPI specs, and GraphQL endpoints into CLI commands at runtime. Supports OAuth, TOON output format, and daemon sessions.
353370
- [openapi-cli-generator](https://github.com/danielgtaylor/openapi-cli-generator) - generates a CLI from an OpenAPI 3 specification using code generation.
354371
- [anything-llm-cli](https://github.com/Mintplex-Labs/anything-llm/tree/master/clients/anything-cli) - CLI for interacting with AnythingLLM, can consume HTTP APIs and tools.
355372
- [openapi-commander](https://github.com/bcoughlan/openapi-commander) - Node.js command-line tool generator based on OpenAPI definitions.

0 commit comments

Comments
 (0)