| atom |
kind |
version |
input |
output |
errors |
side_effects |
idempotent |
timeout_ms |
deprecated |
stability |
keywords |
related |
| kei-task::search |
query |
0.1.0 |
| schema |
required |
example |
| schemas/search-input.json |
|
|
|
| schema |
example |
| schemas/search-output.json |
| results |
| id |
title |
status |
priority |
| 42 |
refactor router |
pending |
high |
|
|
|
|
| code |
http_analog |
description |
| InvalidQuery |
400 |
FTS5 rejected the query syntax |
|
| code |
http_analog |
description |
| StoreError |
500 |
Underlying SQLite store failed during read |
|
|
|
true |
5000 |
null |
stable |
| task |
| search |
| fts |
| lookup |
| query |
|
|
kei-task::search
Runs a FTS5 full-text search over task titles + descriptions and
returns matches ordered by rank (FTS5 BM25 relevance).
Example
kei-task search "refactor" --limit 10
Tab-separated on stdout, one row per hit:
42 pending refactor router
57 in_progress refactor auth layer
Programmatic callers receive a typed array:
{
"results": [
{ "id": 42, "title": "refactor router", "status": "pending", ... }
]
}
Gotchas
limit defaults to 20 and is clamped to a positive integer — pass
0 or negative and the implementation silently uses 20.
- Query uses FTS5 syntax — phrase search needs double quotes inside
the query string (shell escape required).
- Returned rows always include the full
Task shape; callers that
only need id should project client-side.
- Results are ordered by FTS rank, NOT by
created_at — recent tasks
may be returned in the middle of the result set.
Related