← Plugin catalog
Developer Tools

ajq

Ricardo Niederberger Cabral v0.1.1

Semantic filters for JSON

Create a free account to save this plugin.

Competitor profile

Developer declarations; not independently tested. Listing last checked Nov 4, 2026. Package observed Nov 3, 2026.

Not specified in the available declarations: capabilities, limitations, pricing & account requirements.

Onboarding example

Use ajq to safely filter this JSON by meaning.

View package source →

Description

From the marketplace listing

Filter JSON and NDJSON records by meaning or classify text into a fixed set of labels with ajq. The skill helps you discover the installed CLI, validate queries with its deterministic mock backend, inspect the semantic plan, and run an explicitly selected model backend with a finite call cap. Requires shell access and a separately installed ajq CLI. Real semantic judgments require a configured local or cloud backend; the plugin does not bundle a model. Ordinary jq operations stay deterministic. General-purpose semantic extraction and redaction are outside this skill's scope. The plugin has no hosted service or usage telemetry. Input values can be sent to a cloud backend only when you select it, and successful semantic judgments are cached locally unless you disable the cache.

Language: English · Automatically detected from descriptions.

What changed

Keywords

Files & skills

File archives

Plugin package4 files · 258 KBBrowse files →
Skill instructions
ajq3.33 KB

View saved version →

---
name: ajq
description: Route JSON or NDJSON semantic filtering, semantic grep, and bounded fixed-label classification tasks to ajq. Use when matching meaning needs an explicit model boundary; do not use for ordinary structural jq or unsupported general extraction or redaction.
---

# ajq

Use ajq when a JSON or NDJSON task needs fuzzy semantic matching or assigning a
value to a small, fixed set of labels. Keep ordinary jq work in jq: it remains
byte-deterministic and never contacts an AI backend.

## Prerequisites

This skill requires shell access and an installed `ajq` executable. Check with
`command -v ajq` before running the workflow. If shell access or the executable
is unavailable, explain what is missing and link the
[installation guide](https://ricardocabral.github.io/ajq/docs/how-to/install/).
Do not report a command as executed when you could not run it.

## Before choosing ajq

- Use ordinary jq for exact fields, structural transforms, arithmetic, sorting,
  grouping, and exact predicates.
- Do not use ajq for general semantic extraction or redaction. Those standalone
  operations are not supported.
- Keep model use visible. Never introduce a semantic operator or backend without
  saying so to the user.

## Safe workflow

1. Discover the installed contract before composing a query:

   ```bash
   ajq capabilities --json
   ```

2. Build and check the structural jq pipeline first. It needs no backend:

   ```bash
   printf '[{"id":1,"msg":"refund requested"}]' \
     | ajq -c '.[] | {id, msg}'
   ```

3. Check the semantic query shape with the deterministic, no-network mock
   backend. Mock validates command and split-execution shape; it does not judge
   production semantic quality:

   ```bash
   printf '[{"id":1,"msg":"refund requested"}]' \
     | ajq --backend mock -c '.[] | select(.msg =~ "refund request") | {id, msg}'
   ```

4. Inspect the plan and estimated post-dedup judgements before selecting a real
   backend. `--explain` does not run a provider:

   ```bash
   printf '[{"msg":"refund requested"},{"msg":"profile updated"}]' \
     | ajq --explain '.[] | select(.msg =~ "refund request") | .msg'
   ```

5. Once the user has authorized model use, choose an explicit backend and finite `--max-calls`
   cap. Use `--stats` to report the actual work. Never put an API key in a
   command, prompt, or repository file:

   ```bash
   printf '[{"msg":"refund requested"}]' \
     | ajq --backend local --max-calls 10 --stats \
         -c '.[] | select(.msg =~ "refund request") | .msg'
   ```

For bounded classification, supply the labels in the query. This NDJSON example
uses the same no-network mock backend:

```bash
printf '{"id":1,"text":"billing question"}\n{"id":2,"text":"bug report"}\n' \
  | ajq --backend mock -c '{id, route: sem_classify(.text; "billing"; "bug"; "feature")}'
```

Report the actual output and relevant plan or stats. Identify mock results as
execution-shape checks, not real semantic judgments. If a command fails, report
the error and correct the query or explain the missing prerequisite.

Use `--no-cache` for sensitive or one-off values when cache reads and writes
are inappropriate. For backend-specific setup and data-handling controls, see
the [agent-safe workflow](https://ricardocabral.github.io/ajq/docs/how-to/agent-safe-semantic-workflow/)
and [privacy policy](https://ricardocabral.github.io/ajq/privacy/).
Package details

Publisher declarations from the archived package. These are separate from our research and the live service's terms.

Package license
MIT
Package author
Ricardo Niederberger Cabral
Keywords
See keywords

Package observed Nov 3, 2026.

Technical details
First seen
Oct 24, 2026 · 12:40 UTC
Last seen
Nov 4, 2026 · 06:00 UTC
Collection status
Collected

plugins_6ac94ffa561481918cd9538c5980d41c

Download plugin data (JSON)