Skip to content

Command-line interface and Python SDK for the V7 Go API. Manage projects, entities, exports, knowledge hubs, and create AI agents from natural language.

License

Notifications You must be signed in to change notification settings

v7labs/v7-go-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

v7-cli

Command-line interface and Python SDK for the V7 Go API.

Installation

uv pip install git+https://github.com/v7labs/v7-go-cli.git

Quick Start

1. Set up credentials

export V7_GO_API_KEY="your-api-key"
export V7_GO_WORKSPACE_ID="your-workspace-id"

2. Use the CLI

# List projects
v7 projects list

# Create an AI agent from natural language
v7 agent_builder create "Extract invoice data: vendor, amount, due date"

# Export project data
v7 export <project_id> --format csv

Commands

Command Description
v7 projects list List all projects
v7 projects get <id> Get project details
v7 ent list <project> List entities (rows)
v7 ent get <project> <id> Get entity details
v7 ent set <project> <id> <field> "value" Set field value
v7 props list <project> List properties (columns)
v7 export <project> Export project data
v7 hub list List knowledge hubs
v7 hub files <id> List files in a hub
v7 invite <email> Invite user to workspace
v7 agent_builder create "prompt" Create agent from description
v7 template export <project> Export project as template
v7 template import <file> Import template

Run v7 --help or v7 <command> --help for full usage.

Output Modes

The CLI automatically detects how it's being used:

Context Output Behavior
Terminal (TTY) Pretty tables Limited rows, human-readable
Piped (| jq) JSON Full data, all pages, machine-readable
# Human-readable table
v7 projects list

# JSON for scripting
v7 projects list | jq '.data[].id'

# Bulk operations
v7 ent list <project> | jq -r '.data[].id' | while read id; do
  v7 ent recalc <project> $id
done

Python SDK

The CLI includes a typed Python SDK for programmatic access.

SDK Layer (Recommended)

from v7_cli import V7Client

client = V7Client()

# List all projects
projects = client.projects.list_all()
for p in projects:
    print(p.name, p.id)

# Create an AI agent
session = client.agent.create("Extract invoice fields: vendor, amount, date")
session = client.agent.wait_for_plan(session.request_id)
session = client.agent.execute(session.request_id)
print(f"Created project: {session.project_id}")

# Work with entities
entities = client.entities.list_all(project_id)
for entity in entities:
    print(entity.name, entity.field_values)

# Get a specific field value
value = client.entities.get_field(project_id, entity_id, "vendor-name")

# Export project data
export = client.exports.create(project_id, export_format="csv")
export = client.exports.wait_for_completion(project_id, export.id)
print(export.download_url)

Core Layer (Low-level)

from v7_cli.core import APIClient, Project, Entity

client = APIClient()

# Raw API calls
result = client.workspace_get("/projects/123")
project = Project.from_dict(result)

# Pagination
for entity_data in client.paginate("/projects/123/entities"):
    entity = Entity.from_dict(entity_data)
    print(entity.id)

Architecture

CLI (opinionated commands, TTY detection)
  │
  ▼
SDK (typed, ergonomic, chainable)
  │
  ▼
Core (raw HTTP, pagination, types)

Configuration

Environment Variable Description Required
V7_GO_API_KEY Your API key Yes
V7_GO_WORKSPACE_ID Default workspace ID Yes (or use -w flag)
V7_GO_BASE_URL API base URL No (default: https://api.go.v7labs.com)

Development

# Clone and install
git clone https://github.com/v7labs/v7-go-cli.git
cd v7-go-cli
uv sync --group dev

# Run tests
uv run pytest

# Type checking
uv run mypy v7_cli

# Linting
uv run ruff check v7_cli

License

MIT

About

Command-line interface and Python SDK for the V7 Go API. Manage projects, entities, exports, knowledge hubs, and create AI agents from natural language.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages