* feat(cli): agnes marketplace search/detail/add/remove + retire stale subcommands
Unified CLI surface for the v28+ marketplace: search across Curated and
Flea Market (RBAC-filtered server-side), drill into a single item's
detail, add/remove from your stack. Replaces opt-out era commands that
no longer reflect how users compose their stack.
CLI changes:
- Added: agnes marketplace {search,detail,add,remove}
- Removed: agnes my-stack toggle (opt-out semantics, curated-only)
- Removed: agnes store {list,show,install,uninstall} (consumer-side ops
moved under marketplace; store now covers only creator-side upload,
update, delete, mine)
ID format unifies curated and flea: marketplace_id/plugin_name (slash)
routes to /api/marketplace/curated/..., bare UUID routes to
/api/store/entities/... (flea bundles skills/agents into a synthetic
plugin server-side, so the analyst sees a single add/remove surface).
Templates:
- claude_md_template.txt: rewritten marketplace section as operational
guidance for Claude Code (discovery, stack management, behaviour
notes). Dropped the static {% if marketplaces %} listing — the CLI is
the source of truth for what's in the stack at any moment, so a
snapshot rendered at init time would lie the moment the user runs
agnes marketplace add/remove. Same discipline already applied to
tables and metrics.
- agnes_workspace_template.txt: cheat sheet adds 5 marketplace
one-liners; keeps the file's reference-doc tone (the original
commit's intent: 'what is this thing, how does it work, how do I
uninstall it').
Docs: HOWTO/05-customizing-skills.md rewritten around the new CLI flow;
the opt-out section is replaced by 'Removing items from your stack'.
Tests: new test_cli_marketplace.py covers all four subcommands incl.
RBAC/409 paths (system plugin guard, not-approved flea entity);
test_cli_store.py trimmed to the retained creator-side commands.
* release: 0.54.1 — agnes marketplace CLI redesign + retire stale subcommands
Last commit on the PR per CLAUDE.md hard rule. Patch bump (0.54.0 →
0.54.1) bundling the BREAKING removals of `agnes my-stack toggle` and
`agnes store {list,show,install,uninstall}` plus the new unified
`agnes marketplace {search,detail,add,remove}` surface.
No DB migration; no operator-facing config change. Operators on
floating tags (`:stable`) auto-upgrade transparently. Analyst CLI
upgrade prompt fires on next `agnes pull`; users invoking the
retired commands get "No such command" with the new `agnes
marketplace` substitution called out in the BREAKING bullets.
---------
Co-authored-by: Minas Arustamyan <arustamyan.minas@gmail.com>
Co-authored-by: ZdenekSrotyr <zdenek.srotyr@keboola.com>
122 lines
4.1 KiB
Text
122 lines
4.1 KiB
Text
# Agnes analyst workspace
|
|
|
|
**Created:** {created_at}
|
|
**Server:** {server_url}
|
|
**Workspace:** {workspace_path}
|
|
|
|
This file documents what `agnes init` installed on this machine and in this folder.
|
|
Read this when you want to know "what is this thing", "how does it work", or
|
|
"how do I uninstall it". For Claude Code's instructions, see `CLAUDE.md`.
|
|
|
|
---
|
|
|
|
## What's installed (global, per-user)
|
|
|
|
| Path | What it is | How to remove |
|
|
|------|------------|---------------|
|
|
| `~/.local/bin/agnes` | The `agnes` CLI binary | `uv tool uninstall agnes-the-ai-analyst` |
|
|
| `~/.config/agnes/config.yaml` | Default Agnes server URL | `rm -rf ~/.config/agnes/` |
|
|
| `~/.config/agnes/token.json` | Personal access token (PAT) | `rm ~/.config/agnes/token.json` |
|
|
| `~/.agnes/ca.pem` | Server's CA cert (private CA installs only) | `rm ~/.agnes/ca.pem` |
|
|
| `~/.agnes/ca-bundle.pem` | Combined system + Agnes CA bundle | `rm ~/.agnes/ca-bundle.pem` |
|
|
| `~/.zshrc` / `~/.bashrc` block (marker `AGNES_CA_PEM_TRUST`) | `PATH` + `SSL_CERT_FILE` env | Edit rc, remove block |
|
|
|
|
---
|
|
|
|
## What's in this folder
|
|
|
|
| Path | What it is |
|
|
|------|------------|
|
|
| `./CLAUDE.md` | Rules + golden path for Claude Code (fetched from server's `/api/welcome`) |
|
|
| `./AGNES_WORKSPACE.md` | This file |
|
|
| `./.claude/settings.json` | Claude Code config: model, permissions, hooks |
|
|
| `./.claude/CLAUDE.local.md` | Your private notes (uploaded on session end) |
|
|
| `./.claude/rules/km_*.md` | Server-pushed corporate-knowledge rules (only when granted) |
|
|
| `./server/parquet/*.parquet` | Synced data — RBAC-filtered subset (only when grants exist) |
|
|
| `./user/duckdb/analytics.duckdb` | DuckDB views over the parquets — what `agnes query` reads |
|
|
| `./user/snapshots/*.parquet` | Ad-hoc materialized snapshots from `agnes snapshot create` |
|
|
| `./user/sessions/*.jsonl` | Captured Claude Code sessions (uploaded on session end) |
|
|
|
|
Some folders only exist when they have content — `agnes pull` and `agnes push`
|
|
only create them when there's something to write.
|
|
|
|
---
|
|
|
|
## How it stays fresh
|
|
|
|
Two hooks in `./.claude/settings.json` keep this workspace in sync without
|
|
you doing anything:
|
|
|
|
- **SessionStart** → `agnes pull --quiet` — new parquets, schema changes, and
|
|
updated rules pull down before Claude Code answers. Failure is silent;
|
|
your session continues with the last-known data.
|
|
- **SessionEnd** → `agnes push --quiet` — your session transcript and
|
|
`CLAUDE.local.md` ship to the server.
|
|
|
|
Both are workspace-scoped — they only run when Claude Code opens this folder.
|
|
|
|
---
|
|
|
|
## Cheat sheet
|
|
|
|
```bash
|
|
# Tables you can read (server-side catalog, RBAC-filtered)
|
|
agnes catalog
|
|
agnes catalog --json | jq '.[] | select(.query_mode=="local")'
|
|
|
|
# Schema and sample
|
|
agnes schema <table>
|
|
agnes describe <table> -n 10
|
|
|
|
# Run a SQL query (DuckDB flavor against local parquets)
|
|
agnes query "SELECT count(*) FROM <table> WHERE ..."
|
|
|
|
# Remote BigQuery query (server-side, no local materialization)
|
|
agnes query --remote "SELECT count(*) FROM <table>"
|
|
|
|
# Materialize a remote subset locally
|
|
agnes snapshot create <table> \
|
|
--select col1,col2 \
|
|
--where "date >= DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY)" \
|
|
--as my_snapshot
|
|
|
|
# Browse and manage marketplace (skills / agents / plugins)
|
|
agnes marketplace search -q "pdf"
|
|
agnes marketplace detail <id>
|
|
agnes marketplace add <id>
|
|
agnes marketplace remove <id>
|
|
agnes my-stack show
|
|
|
|
# Upload your own skill/agent/plugin to the Flea Market
|
|
agnes store upload skill ./my-skill.zip
|
|
agnes store mine
|
|
|
|
# Manual data refresh (the SessionStart hook does this automatically)
|
|
agnes pull
|
|
|
|
# Workspace status (what's synced, when)
|
|
agnes status
|
|
|
|
# Re-generate this workspace from scratch (preserves CLAUDE.local.md)
|
|
agnes init --server-url https://agnes.example.com --token <PAT> --force
|
|
```
|
|
|
|
---
|
|
|
|
## Uninstall
|
|
|
|
```bash
|
|
# 1. Remove the CLI
|
|
uv tool uninstall agnes-the-ai-analyst
|
|
|
|
# 2. Remove global config and trust artifacts
|
|
rm -rf ~/.config/agnes
|
|
rm -rf ~/.agnes
|
|
|
|
# 3. Remove the env-var block from your shell rc
|
|
# Open ~/.zshrc or ~/.bashrc, find the lines between
|
|
# "# AGNES_CA_PEM_TRUST — added by Agnes setup" and the next blank line, delete.
|
|
|
|
# 4. Remove this workspace
|
|
rm -rf ./CLAUDE.md ./AGNES_WORKSPACE.md ./.claude ./server ./user
|
|
```
|