inconvoai/inconvo/cli

Claude Code and agent skill by inconvoai/inconvo

Trust tier 2
  • community
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

Use when updating an Inconvo agent semantic model or user-context from code context. Covers the full CLI mutation workflow — tables, columns, relations, conditions, policies, virtual tables, computed columns, and user-context — using `inconvo model` and `inconvo connection` commands.

Install

npx vskill@latest install inconvoai/inconvo/cli

SKILL.md

Inconvo CLI — Semantic Model Skill

Use this skill when you need to update an agent semantic model or user-context from code context. This repository uses a CLI-only mutation workflow.

Core Rules

  1. Never edit .inconvo/** by hand.
  2. Never use local YAML as mutation input.
  3. Perform every remote change via inconvo model <group> <command>.
  4. Let the CLI auto-refresh local .inconvo/ snapshots after successful mutations.
  5. Use --dry-run to verify target resolution; it does not validate payload format.
  6. Use --json for automation/agent workflows.
  7. For many independent mutations, use --no-sync on each command and run inconvo model pull once at the end.
  8. Use inconvo model pull after DB schema changes or to recover local snapshots.

Authentication

The CLI resolves credentials in this priority order (highest first):

  1. --api-key / --api-base-url flags on the command
  2. INCONVO_API_KEY / INCONVO_API_BASE_URL environment variables
  3. Repo .env (INCONVO_API_KEY / INCONVO_API_BASE_URL)

Required Inputs

  • agentId for all mutations (--agent). Read from .inconvo/agents/<slug>/agent.yaml.
  • connectionId for schema mutations (--connection). Read from .inconvo/connections/<slug>/connection.yaml.
  • Connection snapshots expose the platform connection context as description.
  • Target identifiers: prefer IDs for stability, names work when unambiguous.

Snapshot Layout

text
.inconvo/
agents/
.slug-map.yaml
<agent-slug>/
agent.yaml # contains agentId
user-context.yaml # fields + status
shareable-connections.yaml
connections/
<connection-slug>/
connection.yaml # reference only — includes description + snapshotPath
connections/
.slug-map.yaml
<connection-slug>/
connection.yaml # contains connectionId + description
tables/
.slug-map.yaml
<table-slug>.yaml # full table snapshot: columns, relations, computed, condition, policy

All files are auto-generated. Read them for IDs and current state; never edit directly.

Sync Terms

  • Post-mutation sync: automatic refresh of local .inconvo/ files after a successful mutation.
  • `model pull`: rebuild local snapshots from the platform.
  • `connection sync`: ask the platform to re-introspect a connection's database schema. Follow with model pull when you need updated local files.

Standard Workflow

  1. Read .inconvo/ YAML files to understand current state and collect IDs.
  2. Read code context (schema, routes, UI) to understand intended semantics.
  3. Plan all mutations, group independent ones for parallel execution.
  4. Run mutations. Use --dry-run --json when target resolution is uncertain. For many independent mutations, add --no-sync to each command and run inconvo model pull once at the end.
  5. Verify the synced YAML files reflect expected changes.
  6. If sync fails, run inconvo model pull --agent <agentId>.

Command Discovery

bash
npx inconvo@latest model --help
npx inconvo@latest model <group> --help
npx inconvo@latest model action schema --json # lists all valid action names
npx inconvo@latest connection --help

Full Mutation Reference

What you want to doCLI Command
Enable/disable a table`model table set-access --access QUERYABLE\JOINABLE\OFF`
Set table descriptionmodel table set-context --context "..."
Rename / add notes / hide a columnmodel column update --rename --notes --selected
Set a column unitmodel column set-unit --unit USD
Create a computed columnmodel computed create --name --ast <json> --unit
Update a computed columnmodel computed update / model computed set-unit
Delete a computed columnmodel computed delete
Toggle an FK relation on/off`model relation toggle --selected true\false`
Create a manual relationmodel relation manual create --source-table --target-table --name --is-list --pair
Delete a manual relationmodel relation manual delete --source-table --relation
Set row-level conditionmodel condition set --table --column --field
Clear row-level conditionmodel condition clear --table
Set table access policymodel policy set --table --field
Clear table access policymodel policy clear --table
Create static enummodel column enum create-static
Create dynamic enummodel column enum create-dynamic
Add user-context field`model user-context add-field --key --type STRING\NUMBER\BOOLEAN`
Delete user-context fieldmodel user-context delete-field --key
Enable user-contextmodel user-context set-status --status ENABLED
View connection descriptionconnection get --agent <agentId> --connection <connectionId>
Update connection descriptionconnection update --agent <agentId> --connection <connectionId> --description "..."
Pull latest snapshotmodel pull --agent <agentId> [--connection <connectionId>]
Trigger DB resyncconnection sync --agent <agentId> --connection <connectionId>

Connection Metadata

Use connection commands for database-level metadata, not semantic-model changes:

bash
# Read current connection metadata (description maps to platform "context")
npx inconvo@latest connection get \
--agent <agentId> --connection <connectionId> --json
# Set the description
npx inconvo@latest connection update \
--agent <agentId> --connection <connectionId> \
--description "Sales warehouse used for BI reporting" --json
# Clear the description
npx inconvo@latest connection update \
--agent <agentId> --connection <connectionId> \
--clear-description --json

connection update refreshes the local .inconvo/ snapshot for that connection. It does not perform a remote DB rescan; connection sync does that.

Computed Column AST Format

The --ast flag takes a JSON string. Node types and their shapes:

json
{ "type": "column", "name": "<columnName>" }
{ "type": "value", "value": 42 }
{ "type": "function", "name": "ABS", "arguments": [<node>] }
{ "type": "operation", "operator": "+"|"-"|"*"|"/"|"%", "operands": [<node>, <node>] }
{ "type": "brackets", "expression": <node> }

Example — (subtotal - discount) + tax:

bash
npx inconvo@latest model computed create \
--agent <agentId> --connection <connectionId> \
--table orders --name "total" \
--ast '{"type":"operation","operator":"+","operands":[{"type":"brackets","expression":{"type":"operation","operator":"-","operands":[{"type":"column","name":"subtotal"},{"type":"column","name":"discount"}]}},{"type":"column","name":"tax"}]}' \
--unit USD --json
Note: --dry-run does NOT validate the AST schema — it only resolves the target entity and shows what would be sent. The API validates the AST and returns a detailed Zod error listing valid node shapes if it's wrong.

Relations Workflow

FK relations defined in the database schema are auto-introspected by the platform and should appear in table YAML under outwardRelations with source: FK on the first pull. No manual steps should be required.

Only create manual relations when no FK constraint exists in the DB (e.g. soft references, denormalised keys, or cross-database joins).

Check current relation state:

bash
grep -E "source: MANUAL|source: FK|^ - id: relation_|^ name:" \
.inconvo/connections/<slug>/tables/<table>.yaml
If FK relations are missing after a pull

Before creating manual relations, ask the user to confirm:

  1. Do the FK constraints actually exist in the database? Check with the user or inspect the schema — if there are no FK constraints, that explains the absence.
  2. Does the Inconvo DB user have access to `information_schema`? FK introspection requires read access to information_schema.key_column_usage and information_schema.referential_constraints. If this permission is missing, run a connection sync after granting it and then pull again.

Only fall back to manual relations if FKs genuinely don't exist in the schema.

Semantic Model Content Guidelines

Prefer fewer, higher-signal semantics over broad coverage. Default to preserving existing semantics; only mutate entries that are clearly missing, wrong, or materially improved by the code context.

Before adding or changing table context or column notes, ask: "Does this add non-obvious business meaning that is not already captured by the schema, relations, units, renames, computed columns, or existing notes?" If not, skip it.

Keeping each layer focused prevents duplication and improves model quality:

LayerWhat belongs hereWhat does NOT belong here
Table contextWhat the table represents, business domain meaning, important distinctions (e.g. "accounts vs customers"), which questions to direct at this tableFormulas, thresholds, enum values, per-column behavior, or repeated FK details
Column notesNon-obvious business meaning, valid ranges, business rules, or app-specific interpretation for a fieldRestating the name/type, generic timestamps, or FK details already expressed as a relation/condition
Computed columnsThe single authoritative place for a derived metric formula (e.g. total = subtotal - discount + tax)Don't repeat the formula in the notes of input columns
Column renameBusiness-friendly display name when the DB column name is unclear (ean → EAN (barcode))—
Column selected=falseSensitive columns that must never be exposed (passwords, tokens, internal flags)—

This is the start of the file. Read the full SKILL.md on GitHub.

Security

  • Security scanPassed, 93 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
105
Repository forks
11
7-day trend score
23

Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 22 May 2026, 5 months ago.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/inconvoai/inconvo/cli/badge)](https://verified-skill.com/skills/inconvoai/inconvo/cli)

Something wrong with this skill or its page? Tell us.