This directory contains comprehensive documentation for the Attio CLI project, covering API concepts, endpoints, CLI specifications, and implementation plan.
- Core Concepts - Objects, records, lists, attributes, workspaces, actors, slugs vs IDs
- Authentication - API keys, OAuth, scopes, environment configuration
- API Fundamentals - Base URL, rate limiting, pagination, filtering, sorting, error handling
- Workspaces & Members - Workspace member management
- Objects & Attributes - Object definitions, attribute management, select/status options
- Records (Generic) - Generic record operations (list, get, create, update, assert, delete)
- People Records - People-specific endpoints and attributes
- Company Records - Company-specific endpoints and attributes
- Deal Records - Deal-specific endpoints and attributes
- Lists & Entries - List management, entry operations, assert entries, multiselect handling
- Notes - Create, read, update, delete notes with markdown support
- Tasks - Task management, assignment, filtering
- Meetings - Meeting queries, participant filtering (read-only)
- CLI Specification - Complete CLI command structure, arguments, options, examples
- Implementation Plan - Phase-by-phase development plan with test specifications
- people: Individual contacts with emails, phone numbers, social profiles
- companies: Organizations with domains, employee counts, categories
- deals: Sales opportunities with stages, values, owners
- users: Workspace user records
- workspaces: Workspace records
POST /v2/objects/{object}/records
PUT /v2/objects/{object}/records?matching_attribute=email_addresses # AssertGET /v2/lists # List all lists
POST /v2/lists/{list}/entries # Add record to list
PUT /v2/lists/{list}/entries # Assert entry
PATCH /v2/lists/{list}/entries/{entry_id} # Update (append multiselect)POST /v2/objects/people/records/query
# Body: {"filter": {"email_addresses": {"$contains": "@example.com"}}}attio <resource> <action> [arguments] [options]
# Examples:
attio workspace members list
attio record create people --data '{...}'
attio entry list my_list --filter '{...}'
attio note create --parent-object people --parent-record-id abc-123
attio task list --linked-object people --completed false- Phase 0: Project setup (TypeScript, testing, dependencies)
- Phase 1: API client foundation (HTTP client, auth, errors)
- Phase 2: Type definitions & validation (Zod schemas)
- Phase 3: Workspace endpoints & CLI
- Phase 4: Objects & attributes
- Phase 5: Records (people, companies, deals)
- Phase 6: Lists & entries
- Phase 7: Notes
- Phase 7a: Tasks
- Phase 7b: Meetings
- Phase 8: Output formatting & polish
- Phase 9: Integration testing & documentation
- Phase 10: Build & distribution
- TypeScript strict mode: No implicit any, strict null checks
- No null/undefined: Use explicit error throwing for missing values
- Runtime validation: Zod schemas for all API responses
- Branded types: UUIDs and slugs have distinct types
- Test-Driven Development: Write tests before implementation
- No premature optimization: Implement minimal working solutions
- Explicit error handling: Clear, user-friendly error messages
- Agent-friendly design: Predictable JSON output, clear exit codes
- Comprehensive help: Every command has examples and documentation