@optiqcode/cli 0.1.1 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -11
- package/dist/api-client.js +1 -1
- package/dist/api-client.js.map +1 -1
- package/dist/mcp-server.js +2 -2
- package/dist/mcp-server.js.map +1 -1
- package/package.json +8 -2
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @optiqcode/cli
|
|
2
2
|
|
|
3
|
-
The CLI and MCP server for [Optiq](https://optiqcode.com) —
|
|
3
|
+
The CLI and MCP server for [Optiq](https://optiqcode.com) — a context engine for your codebase.
|
|
4
4
|
|
|
5
5
|
## Install
|
|
6
6
|
|
|
@@ -48,10 +48,20 @@ After the first index, the backend watches your files and keeps the index up to
|
|
|
48
48
|
|
|
49
49
|
### Search
|
|
50
50
|
|
|
51
|
+
Search uses natural language. Just describe what you're looking for.
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
optiq search "how does the auth middleware validate tokens"
|
|
55
|
+
optiq search "where are database connections configured" --repo-id my-app
|
|
56
|
+
optiq search "what handles file uploads and validation" --limit 20
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
You can also use structured filters:
|
|
60
|
+
|
|
51
61
|
```bash
|
|
52
|
-
optiq search "
|
|
53
|
-
optiq search "
|
|
54
|
-
optiq search "
|
|
62
|
+
optiq search "symbol:handleAuth"
|
|
63
|
+
optiq search "file:middleware type:function"
|
|
64
|
+
optiq search "def:createUser"
|
|
55
65
|
```
|
|
56
66
|
|
|
57
67
|
## MCP server
|
|
@@ -59,10 +69,12 @@ optiq search "error handling" --limit 20
|
|
|
59
69
|
The CLI doubles as an MCP server for AI agents (Claude Code, Cursor, etc). It exposes four tools:
|
|
60
70
|
|
|
61
71
|
- `optiq_index` — index a directory
|
|
62
|
-
- `optiq_search` — search indexed code
|
|
72
|
+
- `optiq_search` — search indexed code with natural language queries
|
|
63
73
|
- `optiq_status` — check indexing job status
|
|
64
74
|
- `optiq_repos` — list indexed repositories
|
|
65
75
|
|
|
76
|
+
The search tool accepts natural language — agents should describe what they're looking for in plain English rather than using keyword-style queries.
|
|
77
|
+
|
|
66
78
|
### Claude Code
|
|
67
79
|
|
|
68
80
|
Add this to `.claude/settings.json`:
|
|
@@ -82,12 +94,6 @@ Add this to `.claude/settings.json`:
|
|
|
82
94
|
|
|
83
95
|
Any client that supports stdio transport works. Point it at `optiq mcp`.
|
|
84
96
|
|
|
85
|
-
## Environment variables
|
|
86
|
-
|
|
87
|
-
| Variable | Default | Description |
|
|
88
|
-
|---|---|---|
|
|
89
|
-
| `OPTIQ_API_URL` | `https://optiqcode.com` | API endpoint (set to `http://localhost:12000` for local dev) |
|
|
90
|
-
|
|
91
97
|
## License
|
|
92
98
|
|
|
93
99
|
MIT
|
package/dist/api-client.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getAccessToken, refreshAccessToken } from "./auth.js";
|
|
2
|
-
const BASE_URL = process.env.OPTIQ_API_URL || "https://optiqcode.com";
|
|
2
|
+
const BASE_URL = process.env.OPTIQ_API_URL || "https://api.optiqcode.com";
|
|
3
3
|
async function request(path, options) {
|
|
4
4
|
const token = getAccessToken();
|
|
5
5
|
const headers = {
|
package/dist/api-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/D,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/D,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,2BAA2B,CAAC;AAE1E,KAAK,UAAU,OAAO,CAAC,IAAY,EAAE,OAAqB;IACxD,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;IAC/B,MAAM,OAAO,GAA2B;QACtC,cAAc,EAAE,kBAAkB;QAClC,GAAI,OAAO,EAAE,OAAkC;KAChD,CAAC;IACF,IAAI,KAAK;QAAE,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,KAAK,EAAE,CAAC;IAExD,IAAI,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,GAAG,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAErE,sBAAsB;IACtB,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,MAAM,kBAAkB,EAAE,CAAC;QAC5C,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,QAAQ,EAAE,CAAC;YAChD,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,GAAG,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,KAAK,CACzB,IAAY,EACZ,MAAe,EACf,KAAK,GAAG,IAAI,EACZ,WAAW,GAAG,IAAI,EAClB,KAAK,GAAG,KAAK;IAEb,OAAO,OAAO,CAAC,eAAe,EAAE;QAC9B,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,IAAI;YACJ,OAAO,EAAE,MAAM;YACf,KAAK;YACL,WAAW;YACX,KAAK;SACN,CAAC;KACH,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAa;IAC7C,OAAO,OAAO,CAAC,wBAAwB,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,KAAa,EACb,MAAe,EACf,KAAK,GAAG,EAAE,EACV,MAAe;IAEf,OAAO,OAAO,CAAC,eAAe,EAAE;QAC9B,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,KAAK;YACL,OAAO,EAAE,MAAM;YACf,KAAK;YACL,MAAM;SACP,CAAC;KACH,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,KAAK;IACzB,OAAO,OAAO,CAAC,eAAe,CAAC,CAAC;AAClC,CAAC"}
|
package/dist/mcp-server.js
CHANGED
|
@@ -19,8 +19,8 @@ export async function startMcpServer() {
|
|
|
19
19
|
const result = await api.index(resolve(path), repoId, true, incremental ?? true, fresh ?? false);
|
|
20
20
|
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
21
21
|
});
|
|
22
|
-
server.tool("optiq_search", "Search indexed code", {
|
|
23
|
-
query: z.string().describe("
|
|
22
|
+
server.tool("optiq_search", "Search indexed code using natural language. Describe what you're looking for in plain English — e.g. 'how does the auth middleware validate tokens' or 'where are database connections configured'. Supports semantic search, symbol filters (symbol:, file:, type:, def:, uses:), and intent hints.", {
|
|
23
|
+
query: z.string().describe("Natural language search query — describe what you're looking for in plain English"),
|
|
24
24
|
repo_id: z.string().optional().describe("Filter by repository"),
|
|
25
25
|
limit: z.number().optional().describe("Max results"),
|
|
26
26
|
intent: z.string().optional().describe("Search intent hint"),
|
package/dist/mcp-server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CACT,aAAa,EACb,mCAAmC,EACnC;QACE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QACpD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QAChE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QAC/D,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;KACrE,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE;QAC9C,MAAM,MAAM,GAAG,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,KAAK,CAC5B,OAAO,CAAC,IAAI,CAAC,EACb,MAAM,EACN,IAAI,EACJ,WAAW,IAAI,IAAI,EACnB,KAAK,IAAI,KAAK,CACf,CAAC;QACF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAChF,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,cAAc,EACd,
|
|
1
|
+
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@optiqcode/cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "Optiq Code CLI and MCP Server",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -9,7 +9,13 @@
|
|
|
9
9
|
"type": "git",
|
|
10
10
|
"url": "https://github.com/optiqcode/optiq"
|
|
11
11
|
},
|
|
12
|
-
"keywords": [
|
|
12
|
+
"keywords": [
|
|
13
|
+
"optiq",
|
|
14
|
+
"code-search",
|
|
15
|
+
"mcp",
|
|
16
|
+
"cli",
|
|
17
|
+
"ai"
|
|
18
|
+
],
|
|
13
19
|
"bin": {
|
|
14
20
|
"optiq": "./dist/index.js"
|
|
15
21
|
},
|