lockthard-cli 0.1.4__tar.gz → 0.2.0__tar.gz
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.
- {lockthard_cli-0.1.4 → lockthard_cli-0.2.0}/PKG-INFO +92 -92
- {lockthard_cli-0.1.4 → lockthard_cli-0.2.0}/lockthard_cli/__init__.py +1 -1
- {lockthard_cli-0.1.4 → lockthard_cli-0.2.0}/lockthard_cli/cli.py +35 -19
- {lockthard_cli-0.1.4 → lockthard_cli-0.2.0}/lockthard_cli/formatters.py +1 -41
- {lockthard_cli-0.1.4 → lockthard_cli-0.2.0}/lockthard_cli.egg-info/PKG-INFO +92 -92
- {lockthard_cli-0.1.4 → lockthard_cli-0.2.0}/pyproject.toml +5 -2
- {lockthard_cli-0.1.4 → lockthard_cli-0.2.0}/setup.cfg +4 -4
- {lockthard_cli-0.1.4 → lockthard_cli-0.2.0}/README.md +0 -0
- {lockthard_cli-0.1.4 → lockthard_cli-0.2.0}/lockthard_cli/auth.py +0 -0
- {lockthard_cli-0.1.4 → lockthard_cli-0.2.0}/lockthard_cli/client.py +0 -0
- {lockthard_cli-0.1.4 → lockthard_cli-0.2.0}/lockthard_cli/config.py +0 -0
- {lockthard_cli-0.1.4 → lockthard_cli-0.2.0}/lockthard_cli.egg-info/SOURCES.txt +0 -0
- {lockthard_cli-0.1.4 → lockthard_cli-0.2.0}/lockthard_cli.egg-info/dependency_links.txt +0 -0
- {lockthard_cli-0.1.4 → lockthard_cli-0.2.0}/lockthard_cli.egg-info/entry_points.txt +0 -0
- {lockthard_cli-0.1.4 → lockthard_cli-0.2.0}/lockthard_cli.egg-info/requires.txt +0 -0
- {lockthard_cli-0.1.4 → lockthard_cli-0.2.0}/lockthard_cli.egg-info/top_level.txt +0 -0
- {lockthard_cli-0.1.4 → lockthard_cli-0.2.0}/tests/test_cli.py +0 -0
|
@@ -1,92 +1,92 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: lockthard-cli
|
|
3
|
-
Version: 0.
|
|
4
|
-
Summary:
|
|
5
|
-
Author-email: Lockthard Team <info@lockthard.es>
|
|
6
|
-
License: MIT
|
|
7
|
-
Project-URL: Homepage, https://lockthard.es
|
|
8
|
-
Keywords: cli,ai-tools,agents,mcp,lockthard
|
|
9
|
-
Classifier: Development Status :: 4 - Beta
|
|
10
|
-
Classifier: Environment :: Console
|
|
11
|
-
Classifier: Intended Audience :: Developers
|
|
12
|
-
Classifier: Programming Language :: Python :: 3
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
14
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
16
|
-
Classifier: Topic :: Utilities
|
|
17
|
-
Requires-Python: >=3.10
|
|
18
|
-
Description-Content-Type: text/markdown
|
|
19
|
-
Requires-Dist: click>=8.1.0
|
|
20
|
-
Requires-Dist: requests>=2.28.0
|
|
21
|
-
Requires-Dist: rich>=13.0.0
|
|
22
|
-
|
|
23
|
-
# LOCKTHARD CLI (`lockthard`)
|
|
24
|
-
|
|
25
|
-
A super efficient, scriptable command-line interface and AI agent client for **LOCKTHARD** (https://lockthard.es).
|
|
26
|
-
|
|
27
|
-
Allows both human developers and autonomous AI agents (Claude Code, Antigravity, Aider, Cursor, etc.) to query, search, and inspect 61+ tablets and 1200+ AI tools with minimum token usage and zero prompt overhead.
|
|
28
|
-
|
|
29
|
-
## Installation
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
pip install lockthard-cli
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
Or run without installing:
|
|
36
|
-
|
|
37
|
-
```bash
|
|
38
|
-
pipx run lockthard-cli --help
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
## Quick Start
|
|
42
|
-
|
|
43
|
-
### 1. Authentication
|
|
44
|
-
Get your API key from [lockthard.es](https://lockthard.es).
|
|
45
|
-
|
|
46
|
-
- **For AI Agents & CI/CD:**
|
|
47
|
-
```bash
|
|
48
|
-
export LOCKTHARD_API_KEY="lk_your_token_here"
|
|
49
|
-
```
|
|
50
|
-
- **Interactive Browser Login (Humans):**
|
|
51
|
-
```bash
|
|
52
|
-
lockthard login
|
|
53
|
-
```
|
|
54
|
-
- **Manual Login:**
|
|
55
|
-
```bash
|
|
56
|
-
lockthard login --token "lk_your_token_here"
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
### 2. Commands
|
|
60
|
-
|
|
61
|
-
```bash
|
|
62
|
-
# Ping service
|
|
63
|
-
lockthard ping
|
|
64
|
-
|
|
65
|
-
# Search tools (returns concise ASCII table)
|
|
66
|
-
lockthard search "ocr"
|
|
67
|
-
|
|
68
|
-
# Search tools in raw JSON (for agents / jq)
|
|
69
|
-
lockthard search "ocr" --json
|
|
70
|
-
|
|
71
|
-
# List all tablets
|
|
72
|
-
lockthard tablets list
|
|
73
|
-
|
|
74
|
-
# Inspect a specific tablet
|
|
75
|
-
lockthard tablets get ocr
|
|
76
|
-
|
|
77
|
-
# Inspect tool details
|
|
78
|
-
lockthard tools get "Chandra OCR"
|
|
79
|
-
|
|
80
|
-
# Display CLI agent guide
|
|
81
|
-
lockthard guide
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
## Options
|
|
85
|
-
|
|
86
|
-
- `--json` / `-j`: Output raw JSON without Rich styling.
|
|
87
|
-
- `--url` / `-u`: Override base server URL (default: `https://lockthard.es`).
|
|
88
|
-
- `--token` / `-t`: Override API token.
|
|
89
|
-
|
|
90
|
-
## License
|
|
91
|
-
|
|
92
|
-
MIT License
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: lockthard-cli
|
|
3
|
+
Version: 0.2.0
|
|
4
|
+
Summary: CLI and AI agent client for LOCKTHARD — query 2100+ curated AI tools across 86+ tablets
|
|
5
|
+
Author-email: Lockthard Team <info@lockthard.es>
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://lockthard.es
|
|
8
|
+
Keywords: cli,ai-tools,agents,mcp,lockthard
|
|
9
|
+
Classifier: Development Status :: 4 - Beta
|
|
10
|
+
Classifier: Environment :: Console
|
|
11
|
+
Classifier: Intended Audience :: Developers
|
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
16
|
+
Classifier: Topic :: Utilities
|
|
17
|
+
Requires-Python: >=3.10
|
|
18
|
+
Description-Content-Type: text/markdown
|
|
19
|
+
Requires-Dist: click>=8.1.0
|
|
20
|
+
Requires-Dist: requests>=2.28.0
|
|
21
|
+
Requires-Dist: rich>=13.0.0
|
|
22
|
+
|
|
23
|
+
# LOCKTHARD CLI (`lockthard`)
|
|
24
|
+
|
|
25
|
+
A super efficient, scriptable command-line interface and AI agent client for **LOCKTHARD** (https://lockthard.es).
|
|
26
|
+
|
|
27
|
+
Allows both human developers and autonomous AI agents (Claude Code, Antigravity, Aider, Cursor, etc.) to query, search, and inspect 61+ tablets and 1200+ AI tools with minimum token usage and zero prompt overhead.
|
|
28
|
+
|
|
29
|
+
## Installation
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
pip install lockthard-cli
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Or run without installing:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
pipx run lockthard-cli --help
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Quick Start
|
|
42
|
+
|
|
43
|
+
### 1. Authentication
|
|
44
|
+
Get your API key from [lockthard.es](https://lockthard.es).
|
|
45
|
+
|
|
46
|
+
- **For AI Agents & CI/CD:**
|
|
47
|
+
```bash
|
|
48
|
+
export LOCKTHARD_API_KEY="lk_your_token_here"
|
|
49
|
+
```
|
|
50
|
+
- **Interactive Browser Login (Humans):**
|
|
51
|
+
```bash
|
|
52
|
+
lockthard login
|
|
53
|
+
```
|
|
54
|
+
- **Manual Login:**
|
|
55
|
+
```bash
|
|
56
|
+
lockthard login --token "lk_your_token_here"
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### 2. Commands
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
# Ping service
|
|
63
|
+
lockthard ping
|
|
64
|
+
|
|
65
|
+
# Search tools (returns concise ASCII table)
|
|
66
|
+
lockthard search "ocr"
|
|
67
|
+
|
|
68
|
+
# Search tools in raw JSON (for agents / jq)
|
|
69
|
+
lockthard search "ocr" --json
|
|
70
|
+
|
|
71
|
+
# List all tablets
|
|
72
|
+
lockthard tablets list
|
|
73
|
+
|
|
74
|
+
# Inspect a specific tablet
|
|
75
|
+
lockthard tablets get ocr
|
|
76
|
+
|
|
77
|
+
# Inspect tool details
|
|
78
|
+
lockthard tools get "Chandra OCR"
|
|
79
|
+
|
|
80
|
+
# Display CLI agent guide
|
|
81
|
+
lockthard guide
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Options
|
|
85
|
+
|
|
86
|
+
- `--json` / `-j`: Output raw JSON without Rich styling.
|
|
87
|
+
- `--url` / `-u`: Override base server URL (default: `https://lockthard.es`).
|
|
88
|
+
- `--token` / `-t`: Override API token.
|
|
89
|
+
|
|
90
|
+
## License
|
|
91
|
+
|
|
92
|
+
MIT License
|
|
@@ -15,7 +15,6 @@ from .formatters import (
|
|
|
15
15
|
print_tool_details,
|
|
16
16
|
print_cli_tools,
|
|
17
17
|
print_agent_guide,
|
|
18
|
-
print_agent_skill
|
|
19
18
|
)
|
|
20
19
|
|
|
21
20
|
|
|
@@ -25,6 +24,11 @@ def _handle_error(err: Exception):
|
|
|
25
24
|
sys.exit(1)
|
|
26
25
|
|
|
27
26
|
|
|
27
|
+
def _get_as_json(ctx: click.Context, local_flag: bool) -> bool:
|
|
28
|
+
"""Merge global --json with local subcommand --json flag."""
|
|
29
|
+
return ctx.obj.get("as_json", False) or local_flag
|
|
30
|
+
|
|
31
|
+
|
|
28
32
|
@click.group(invoke_without_command=False)
|
|
29
33
|
@click.option("--url", "-u", default=None, help="Base URL del servidor LOCKTHARD (default: https://lockthard.es).")
|
|
30
34
|
@click.option("--token", "-t", default=None, help="API Key / Token de autenticación (lk_...).")
|
|
@@ -44,13 +48,16 @@ def cli(ctx: click.Context, url: Optional[str], token: Optional[str], as_json: b
|
|
|
44
48
|
|
|
45
49
|
|
|
46
50
|
@cli.command()
|
|
51
|
+
@click.option("--json", "-j", "as_json_local", is_flag=True, default=False,
|
|
52
|
+
help="Salida en JSON bruto (ideal para scripts y agentes).")
|
|
47
53
|
@click.pass_context
|
|
48
|
-
def ping(ctx: click.Context):
|
|
54
|
+
def ping(ctx: click.Context, as_json_local: bool):
|
|
49
55
|
"""Verifica la conectividad con el servidor de LOCKTHARD y el estado del token."""
|
|
50
56
|
client: LockthardClient = ctx.obj["client"]
|
|
57
|
+
as_json = _get_as_json(ctx, as_json_local)
|
|
51
58
|
try:
|
|
52
59
|
res = client.ping()
|
|
53
|
-
print_ping_result(res, as_json=
|
|
60
|
+
print_ping_result(res, as_json=as_json)
|
|
54
61
|
except LockthardError as e:
|
|
55
62
|
_handle_error(e)
|
|
56
63
|
|
|
@@ -98,16 +105,19 @@ def logout():
|
|
|
98
105
|
|
|
99
106
|
|
|
100
107
|
@cli.command()
|
|
108
|
+
@click.option("--json", "-j", "as_json_local", is_flag=True, default=False,
|
|
109
|
+
help="Salida en JSON bruto (ideal para scripts y agentes).")
|
|
101
110
|
@click.argument("query")
|
|
102
111
|
@click.option("--tablet", "-t", help="Filtrar por ID de tablet específica.")
|
|
103
112
|
@click.option("--limit", "-l", default=20, type=int, help="Límite de resultados (default: 20).")
|
|
104
113
|
@click.pass_context
|
|
105
|
-
def search(ctx: click.Context, query: str, tablet: Optional[str], limit: int):
|
|
114
|
+
def search(ctx: click.Context, as_json_local: bool, query: str, tablet: Optional[str], limit: int):
|
|
106
115
|
"""Busca herramientas por palabra clave en LOCKTHARD."""
|
|
107
116
|
client: LockthardClient = ctx.obj["client"]
|
|
117
|
+
as_json = _get_as_json(ctx, as_json_local)
|
|
108
118
|
try:
|
|
109
119
|
results = client.search_tools(query=query, tablet_id=tablet, limit=limit)
|
|
110
|
-
print_search_results(query, results, as_json=
|
|
120
|
+
print_search_results(query, results, as_json=as_json)
|
|
111
121
|
except LockthardError as e:
|
|
112
122
|
_handle_error(e)
|
|
113
123
|
|
|
@@ -119,28 +129,34 @@ def tablets():
|
|
|
119
129
|
|
|
120
130
|
|
|
121
131
|
@tablets.command(name="list")
|
|
132
|
+
@click.option("--json", "-j", "as_json_local", is_flag=True, default=False,
|
|
133
|
+
help="Salida en JSON bruto (ideal para scripts y agentes).")
|
|
122
134
|
@click.option("--query", "-q", help="Filtrar tablets por título o categoría.")
|
|
123
135
|
@click.pass_context
|
|
124
|
-
def list_tablets_cmd(ctx: click.Context, query: Optional[str]):
|
|
136
|
+
def list_tablets_cmd(ctx: click.Context, as_json_local: bool, query: Optional[str]):
|
|
125
137
|
"""Lista los 61+ tablets y categorías disponibles."""
|
|
126
138
|
client: LockthardClient = ctx.obj["client"]
|
|
139
|
+
as_json = _get_as_json(ctx, as_json_local)
|
|
127
140
|
try:
|
|
128
141
|
res = client.list_tablets(query=query)
|
|
129
|
-
print_tablets_list(res, as_json=
|
|
142
|
+
print_tablets_list(res, as_json=as_json)
|
|
130
143
|
except LockthardError as e:
|
|
131
144
|
_handle_error(e)
|
|
132
145
|
|
|
133
146
|
|
|
134
147
|
@tablets.command(name="get")
|
|
148
|
+
@click.option("--json", "-j", "as_json_local", is_flag=True, default=False,
|
|
149
|
+
help="Salida en JSON bruto (ideal para scripts y agentes).")
|
|
135
150
|
@click.argument("tablet_id")
|
|
136
151
|
@click.option("--limit", "-l", type=int, help="Límite de herramientas a devolver.")
|
|
137
152
|
@click.pass_context
|
|
138
|
-
def get_tablet_cmd(ctx: click.Context, tablet_id: str, limit: Optional[int]):
|
|
153
|
+
def get_tablet_cmd(ctx: click.Context, as_json_local: bool, tablet_id: str, limit: Optional[int]):
|
|
139
154
|
"""Obtiene el contenido completo de un tablet por su ID (ej. ocr, open-source)."""
|
|
140
155
|
client: LockthardClient = ctx.obj["client"]
|
|
156
|
+
as_json = _get_as_json(ctx, as_json_local)
|
|
141
157
|
try:
|
|
142
158
|
res = client.get_tablet(tablet_id=tablet_id, limit=limit)
|
|
143
|
-
print_tablet_content(res, as_json=
|
|
159
|
+
print_tablet_content(res, as_json=as_json)
|
|
144
160
|
except LockthardError as e:
|
|
145
161
|
_handle_error(e)
|
|
146
162
|
|
|
@@ -152,26 +168,32 @@ def tools():
|
|
|
152
168
|
|
|
153
169
|
|
|
154
170
|
@tools.command(name="get")
|
|
171
|
+
@click.option("--json", "-j", "as_json_local", is_flag=True, default=False,
|
|
172
|
+
help="Salida en JSON bruto (ideal para scripts y agentes).")
|
|
155
173
|
@click.argument("tool_id")
|
|
156
174
|
@click.pass_context
|
|
157
|
-
def get_tool_cmd(ctx: click.Context, tool_id: str):
|
|
175
|
+
def get_tool_cmd(ctx: click.Context, as_json_local: bool, tool_id: str):
|
|
158
176
|
"""Obtiene los detalles y comandos recomendados de una herramienta específica."""
|
|
159
177
|
client: LockthardClient = ctx.obj["client"]
|
|
178
|
+
as_json = _get_as_json(ctx, as_json_local)
|
|
160
179
|
try:
|
|
161
180
|
res = client.get_tool_details(tool_id=tool_id)
|
|
162
|
-
print_tool_details(res, as_json=
|
|
181
|
+
print_tool_details(res, as_json=as_json)
|
|
163
182
|
except LockthardError as e:
|
|
164
183
|
_handle_error(e)
|
|
165
184
|
|
|
166
185
|
|
|
167
186
|
@cli.command(name="cli-tools")
|
|
187
|
+
@click.option("--json", "-j", "as_json_local", is_flag=True, default=False,
|
|
188
|
+
help="Salida en JSON bruto (ideal para scripts y agentes).")
|
|
168
189
|
@click.pass_context
|
|
169
|
-
def cli_tools_cmd(ctx: click.Context):
|
|
190
|
+
def cli_tools_cmd(ctx: click.Context, as_json_local: bool):
|
|
170
191
|
"""Lista las herramientas especializadas de línea de comandos en LOCKTHARD."""
|
|
171
192
|
client: LockthardClient = ctx.obj["client"]
|
|
193
|
+
as_json = _get_as_json(ctx, as_json_local)
|
|
172
194
|
try:
|
|
173
195
|
res = client.get_cli_tools()
|
|
174
|
-
print_cli_tools(res, as_json=
|
|
196
|
+
print_cli_tools(res, as_json=as_json)
|
|
175
197
|
except LockthardError as e:
|
|
176
198
|
_handle_error(e)
|
|
177
199
|
|
|
@@ -182,12 +204,6 @@ def guide():
|
|
|
182
204
|
print_agent_guide()
|
|
183
205
|
|
|
184
206
|
|
|
185
|
-
@cli.command()
|
|
186
|
-
def skill():
|
|
187
|
-
"""Genera la especificación SKILL.md completa para que un Agente de IA la importe."""
|
|
188
|
-
print_agent_skill()
|
|
189
|
-
|
|
190
|
-
|
|
191
207
|
def main():
|
|
192
208
|
cli(obj={})
|
|
193
209
|
|
|
@@ -247,45 +247,5 @@ Bienvenido a la CLI de **LOCKTHARD**. Esta interfaz permite a Agentes de IA (Cla
|
|
|
247
247
|
print(guide_md)
|
|
248
248
|
|
|
249
249
|
|
|
250
|
-
|
|
251
|
-
skill_content = """---
|
|
252
|
-
name: lockthard
|
|
253
|
-
description: "Scriptable CLI and AI agent client for LOCKTHARD (lockthard.es). Allows searching 2100+ AI tools, exploring 81+ tablets, retrieving tool installation commands, and inspecting tool details with minimum token overhead."
|
|
254
|
-
version: 0.1.0
|
|
255
|
-
---
|
|
256
|
-
|
|
257
|
-
# LOCKTHARD CLI - Agent Skill Guide
|
|
258
|
-
|
|
259
|
-
Use this CLI to query the LOCKTHARD AI tools directory, find specific tools, get installation/setup commands, and browse tablets.
|
|
260
|
-
|
|
261
|
-
## Authentication
|
|
262
|
-
Set the environment variable `LOCKTHARD_API_KEY`:
|
|
263
|
-
```bash
|
|
264
|
-
export LOCKTHARD_API_KEY="lk_your_token"
|
|
265
|
-
```
|
|
266
|
-
|
|
267
|
-
## Recommended Workflow for AI Agents
|
|
268
|
-
Always use the `--json` (`-j`) flag to receive clean JSON output.
|
|
269
|
-
|
|
270
|
-
1. **Verify status:** `lockthard ping`
|
|
271
|
-
2. **Search tools:** `lockthard search "ocr" --json`
|
|
272
|
-
3. **List all tablets:** `lockthard tablets list --json`
|
|
273
|
-
4. **Get tablet tools:** `lockthard tablets get ocr --json`
|
|
274
|
-
5. **Get tool details:** `lockthard tools get "Chandra OCR" --json`
|
|
275
|
-
6. **List CLI tools:** `lockthard cli-tools --json`
|
|
276
|
-
|
|
277
|
-
## Commands Reference
|
|
278
|
-
|
|
279
|
-
| Command | Description | Example |
|
|
280
|
-
|---|---|---|
|
|
281
|
-
| `lockthard ping` | Check connection & auth status | `lockthard ping` |
|
|
282
|
-
| `lockthard search <query>` | Search 2100+ tools | `lockthard search "ocr" -j` |
|
|
283
|
-
| `lockthard tablets list` | List 81+ tablets | `lockthard tablets list -j` |
|
|
284
|
-
| `lockthard tablets get <id>` | Inspect tablet content | `lockthard tablets get open-source -j` |
|
|
285
|
-
| `lockthard tools get <id>` | Detailed tool info & CLI commands | `lockthard tools get "copilotkit" -j` |
|
|
286
|
-
| `lockthard cli-tools` | List dedicated CLI tools | `lockthard cli-tools -j` |
|
|
287
|
-
| `lockthard guide` | Show agent guide | `lockthard guide` |
|
|
288
|
-
| `lockthard skill` | Output this SKILL.md definition | `lockthard skill` |
|
|
289
|
-
"""
|
|
290
|
-
print(skill_content)
|
|
250
|
+
|
|
291
251
|
|
|
@@ -1,92 +1,92 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: lockthard-cli
|
|
3
|
-
Version: 0.
|
|
4
|
-
Summary:
|
|
5
|
-
Author-email: Lockthard Team <info@lockthard.es>
|
|
6
|
-
License: MIT
|
|
7
|
-
Project-URL: Homepage, https://lockthard.es
|
|
8
|
-
Keywords: cli,ai-tools,agents,mcp,lockthard
|
|
9
|
-
Classifier: Development Status :: 4 - Beta
|
|
10
|
-
Classifier: Environment :: Console
|
|
11
|
-
Classifier: Intended Audience :: Developers
|
|
12
|
-
Classifier: Programming Language :: Python :: 3
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
14
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
16
|
-
Classifier: Topic :: Utilities
|
|
17
|
-
Requires-Python: >=3.10
|
|
18
|
-
Description-Content-Type: text/markdown
|
|
19
|
-
Requires-Dist: click>=8.1.0
|
|
20
|
-
Requires-Dist: requests>=2.28.0
|
|
21
|
-
Requires-Dist: rich>=13.0.0
|
|
22
|
-
|
|
23
|
-
# LOCKTHARD CLI (`lockthard`)
|
|
24
|
-
|
|
25
|
-
A super efficient, scriptable command-line interface and AI agent client for **LOCKTHARD** (https://lockthard.es).
|
|
26
|
-
|
|
27
|
-
Allows both human developers and autonomous AI agents (Claude Code, Antigravity, Aider, Cursor, etc.) to query, search, and inspect 61+ tablets and 1200+ AI tools with minimum token usage and zero prompt overhead.
|
|
28
|
-
|
|
29
|
-
## Installation
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
pip install lockthard-cli
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
Or run without installing:
|
|
36
|
-
|
|
37
|
-
```bash
|
|
38
|
-
pipx run lockthard-cli --help
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
## Quick Start
|
|
42
|
-
|
|
43
|
-
### 1. Authentication
|
|
44
|
-
Get your API key from [lockthard.es](https://lockthard.es).
|
|
45
|
-
|
|
46
|
-
- **For AI Agents & CI/CD:**
|
|
47
|
-
```bash
|
|
48
|
-
export LOCKTHARD_API_KEY="lk_your_token_here"
|
|
49
|
-
```
|
|
50
|
-
- **Interactive Browser Login (Humans):**
|
|
51
|
-
```bash
|
|
52
|
-
lockthard login
|
|
53
|
-
```
|
|
54
|
-
- **Manual Login:**
|
|
55
|
-
```bash
|
|
56
|
-
lockthard login --token "lk_your_token_here"
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
### 2. Commands
|
|
60
|
-
|
|
61
|
-
```bash
|
|
62
|
-
# Ping service
|
|
63
|
-
lockthard ping
|
|
64
|
-
|
|
65
|
-
# Search tools (returns concise ASCII table)
|
|
66
|
-
lockthard search "ocr"
|
|
67
|
-
|
|
68
|
-
# Search tools in raw JSON (for agents / jq)
|
|
69
|
-
lockthard search "ocr" --json
|
|
70
|
-
|
|
71
|
-
# List all tablets
|
|
72
|
-
lockthard tablets list
|
|
73
|
-
|
|
74
|
-
# Inspect a specific tablet
|
|
75
|
-
lockthard tablets get ocr
|
|
76
|
-
|
|
77
|
-
# Inspect tool details
|
|
78
|
-
lockthard tools get "Chandra OCR"
|
|
79
|
-
|
|
80
|
-
# Display CLI agent guide
|
|
81
|
-
lockthard guide
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
## Options
|
|
85
|
-
|
|
86
|
-
- `--json` / `-j`: Output raw JSON without Rich styling.
|
|
87
|
-
- `--url` / `-u`: Override base server URL (default: `https://lockthard.es`).
|
|
88
|
-
- `--token` / `-t`: Override API token.
|
|
89
|
-
|
|
90
|
-
## License
|
|
91
|
-
|
|
92
|
-
MIT License
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: lockthard-cli
|
|
3
|
+
Version: 0.2.0
|
|
4
|
+
Summary: CLI and AI agent client for LOCKTHARD — query 2100+ curated AI tools across 86+ tablets
|
|
5
|
+
Author-email: Lockthard Team <info@lockthard.es>
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://lockthard.es
|
|
8
|
+
Keywords: cli,ai-tools,agents,mcp,lockthard
|
|
9
|
+
Classifier: Development Status :: 4 - Beta
|
|
10
|
+
Classifier: Environment :: Console
|
|
11
|
+
Classifier: Intended Audience :: Developers
|
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
16
|
+
Classifier: Topic :: Utilities
|
|
17
|
+
Requires-Python: >=3.10
|
|
18
|
+
Description-Content-Type: text/markdown
|
|
19
|
+
Requires-Dist: click>=8.1.0
|
|
20
|
+
Requires-Dist: requests>=2.28.0
|
|
21
|
+
Requires-Dist: rich>=13.0.0
|
|
22
|
+
|
|
23
|
+
# LOCKTHARD CLI (`lockthard`)
|
|
24
|
+
|
|
25
|
+
A super efficient, scriptable command-line interface and AI agent client for **LOCKTHARD** (https://lockthard.es).
|
|
26
|
+
|
|
27
|
+
Allows both human developers and autonomous AI agents (Claude Code, Antigravity, Aider, Cursor, etc.) to query, search, and inspect 61+ tablets and 1200+ AI tools with minimum token usage and zero prompt overhead.
|
|
28
|
+
|
|
29
|
+
## Installation
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
pip install lockthard-cli
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Or run without installing:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
pipx run lockthard-cli --help
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Quick Start
|
|
42
|
+
|
|
43
|
+
### 1. Authentication
|
|
44
|
+
Get your API key from [lockthard.es](https://lockthard.es).
|
|
45
|
+
|
|
46
|
+
- **For AI Agents & CI/CD:**
|
|
47
|
+
```bash
|
|
48
|
+
export LOCKTHARD_API_KEY="lk_your_token_here"
|
|
49
|
+
```
|
|
50
|
+
- **Interactive Browser Login (Humans):**
|
|
51
|
+
```bash
|
|
52
|
+
lockthard login
|
|
53
|
+
```
|
|
54
|
+
- **Manual Login:**
|
|
55
|
+
```bash
|
|
56
|
+
lockthard login --token "lk_your_token_here"
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### 2. Commands
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
# Ping service
|
|
63
|
+
lockthard ping
|
|
64
|
+
|
|
65
|
+
# Search tools (returns concise ASCII table)
|
|
66
|
+
lockthard search "ocr"
|
|
67
|
+
|
|
68
|
+
# Search tools in raw JSON (for agents / jq)
|
|
69
|
+
lockthard search "ocr" --json
|
|
70
|
+
|
|
71
|
+
# List all tablets
|
|
72
|
+
lockthard tablets list
|
|
73
|
+
|
|
74
|
+
# Inspect a specific tablet
|
|
75
|
+
lockthard tablets get ocr
|
|
76
|
+
|
|
77
|
+
# Inspect tool details
|
|
78
|
+
lockthard tools get "Chandra OCR"
|
|
79
|
+
|
|
80
|
+
# Display CLI agent guide
|
|
81
|
+
lockthard guide
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Options
|
|
85
|
+
|
|
86
|
+
- `--json` / `-j`: Output raw JSON without Rich styling.
|
|
87
|
+
- `--url` / `-u`: Override base server URL (default: `https://lockthard.es`).
|
|
88
|
+
- `--token` / `-t`: Override API token.
|
|
89
|
+
|
|
90
|
+
## License
|
|
91
|
+
|
|
92
|
+
MIT License
|
|
@@ -4,8 +4,8 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "lockthard-cli"
|
|
7
|
-
version = "0.
|
|
8
|
-
description = "
|
|
7
|
+
version = "0.2.0"
|
|
8
|
+
description = "CLI and AI agent client for LOCKTHARD — query 2100+ curated AI tools across 86+ tablets"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = { text = "MIT" }
|
|
11
11
|
requires-python = ">=3.10"
|
|
@@ -37,3 +37,6 @@ lockthard = "lockthard_cli.cli:main"
|
|
|
37
37
|
|
|
38
38
|
[tool.setuptools.packages.find]
|
|
39
39
|
where = ["."]
|
|
40
|
+
|
|
41
|
+
[tool.setuptools.package-data]
|
|
42
|
+
"*" = ["SKILL.md"]
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
[egg_info]
|
|
2
|
-
tag_build =
|
|
3
|
-
tag_date = 0
|
|
4
|
-
|
|
1
|
+
[egg_info]
|
|
2
|
+
tag_build =
|
|
3
|
+
tag_date = 0
|
|
4
|
+
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|