{"id":49283564,"url":"https://github.com/cgwire/kitsu-cli","last_synced_at":"2026-04-25T20:03:24.582Z","repository":{"id":353709169,"uuid":"1206021953","full_name":"cgwire/kitsu-cli","owner":"cgwire","description":"CLI to manage a Kitsu instance from the command line.","archived":false,"fork":false,"pushed_at":"2026-04-09T14:07:44.000Z","size":79,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-25T07:11:39.698Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cgwire.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-09T13:55:05.000Z","updated_at":"2026-04-09T14:12:34.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/cgwire/kitsu-cli","commit_stats":null,"previous_names":["cgwire/kitsu-cli"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/cgwire/kitsu-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cgwire%2Fkitsu-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cgwire%2Fkitsu-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cgwire%2Fkitsu-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cgwire%2Fkitsu-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cgwire","download_url":"https://codeload.github.com/cgwire/kitsu-cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cgwire%2Fkitsu-cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32274987,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T18:29:39.964Z","status":"ssl_error","status_checked_at":"2026-04-25T18:29:32.149Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-25T20:03:23.047Z","updated_at":"2026-04-25T20:03:24.576Z","avatar_url":"https://github.com/cgwire.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# kitsu-cli\n\nCommand-line interface for the [Kitsu](https://www.cg-wire.com/kitsu) production tracker, built on top of the [Gazu](https://github.com/cgwire/gazu) Python SDK.\n\nKitsu-cli exposes Gazu's 260+ functions as structured CLI commands. Output defaults to JSON for easy piping into `jq` or consumption by scripts and AI agents, with optional table and CSV formats for human use.\n\n## Install\n\nRequires Python 3.10+.\n\n```bash\npip install kitsu-cli\n```\n\nOr with [uv](https://docs.astral.sh/uv/):\n\n```bash\nuv pip install kitsu-cli\n```\n\nFor development install, see [development.md](development.md).\n\n## Quick start\n\n### Authenticate\n\n```bash\n# Interactive login (prompts for email and password)\nkitsu auth login --host https://kitsu.mystudio.com\n\n# Login with email and password directly\nkitsu auth login --host https://kitsu.mystudio.com --email admin@example.com --password secret\n\n# Login with an API token\nkitsu auth login --host https://kitsu.mystudio.com --token YOUR_TOKEN\n\n# Check authentication status\nkitsu auth status\n\n# Logout (clears stored credentials)\nkitsu auth logout\n```\n\nCredentials are stored in `~/.config/kitsu-cli/config.toml` (permissions `0600`).\n\n### Environment variables\n\nInstead of passing `--host` and `--token` every time, set environment variables:\n\n```bash\nexport KITSU_HOST=https://kitsu.mystudio.com\nexport KITSU_TOKEN=your-access-token\n```\n\nPriority order: CLI flag \u003e environment variable \u003e config file.\n\n### Browse projects\n\n```bash\n# List all projects\nkitsu project list\n\n# List open projects only\nkitsu project list-open\n\n# Get a specific project by name or UUID\nkitsu project get \"My Project\"\nkitsu project get a1b2c3d4-e5f6-7890-abcd-ef1234567890\n```\n\n### Work with assets\n\n```bash\n# List assets in a project\nkitsu asset list --project \"My Project\"\n\n# Filter by asset type\nkitsu asset list --project \"My Project\" --asset-type Character\n\n# Create an asset\nkitsu asset create --project \"My Project\" --type Character \"Hero\"\n\n# Get an asset by UUID\nkitsu asset get a1b2c3d4-e5f6-7890-abcd-ef1234567890\n```\n\n### Work with shots\n\n```bash\n# List shots for a project\nkitsu shot list --project \"My Project\"\n\n# List shots in a specific sequence\nkitsu shot list --sequence SEQUENCE_UUID\n\n# Create a sequence, then a shot\nkitsu shot sequence create --project \"My Project\" SQ010\nkitsu shot create --project \"My Project\" --sequence SEQUENCE_UUID SH0010\n\n# Manage episodes\nkitsu shot episode list --project \"My Project\"\nkitsu shot episode create --project \"My Project\" EP01\n```\n\n### Manage tasks\n\n```bash\n# List tasks for a shot\nkitsu task list --shot SHOT_UUID\n\n# List tasks assigned to someone\nkitsu task list --person user@example.com\n\n# Create a task\nkitsu task create ENTITY_UUID --task-type Animation\n\n# Start, assign, and review\nkitsu task start TASK_UUID\nkitsu task assign TASK_UUID --person artist@example.com\nkitsu task review TASK_UUID --person lead@example.com --comment \"Approved\"\n\n# Add a comment\nkitsu task comment add TASK_UUID --status \"Work In Progress\" -m \"Starting animation pass\"\n\n# Track time\nkitsu task time add TASK_UUID --person artist@example.com --date 2025-03-14 --duration 120\n```\n\n### Publish previews\n\n```bash\n# Publish a preview file with a comment in one step\nkitsu task preview publish TASK_UUID --status \"Waiting For Approval\" \\\n  --file /path/to/render.mp4 -m \"First animation pass\" --set-thumbnail\n```\n\n## Output formats\n\nDefault is `json` when piping, `table` when interactive.\n\n```bash\n# JSON (default for non-TTY)\nkitsu project list --format json\n\n# Pretty table (default for TTY)\nkitsu project list --format table\n\n# CSV\nkitsu project list --format csv\n\n# IDs only (useful for scripting)\nkitsu project list --format id-only\n```\n\nPipe JSON into `jq` for ad-hoc queries:\n\n```bash\nkitsu asset list --project \"My Project\" --format json | jq '.[].name'\n```\n\n## Command groups\n\n| Group | Description |\n|-------|-------------|\n| `auth` | Login, logout, status |\n| `project` | Projects and project settings |\n| `asset` | Assets and asset types |\n| `shot` | Shots, sequences, and episodes |\n| `task` | Tasks, comments, previews, time tracking, task types/statuses |\n| `person` | People, departments, organisations |\n| `files` | Output files, working files, preview files, software |\n| `casting` | Asset-to-shot/episode casting |\n| `playlist` | Playlist management |\n| `entity` | Generic entities and entity types |\n| `scene` | Scenes and asset instances |\n| `edit` | Edit entities |\n| `concept` | Concept art |\n| `studio` | Current user: tasks to do, notifications, filters, chats |\n| `sync` | Event log and data import |\n| `search` | Search entities by name |\n| `cache` | Client-side cache control |\n| `events` | Real-time event listener |\n\nUse `kitsu \u003cgroup\u003e --help` to see available commands, and `kitsu \u003cgroup\u003e \u003ccommand\u003e --help` for options.\n\n## Global options\n\n```\n--host TEXT                      Kitsu server URL (or KITSU_HOST env var)\n--token TEXT                     API access token (or KITSU_TOKEN env var)\n--format [json|table|csv|id-only] Output format\n-v, --verbose                    Verbose output\n-q, --quiet                      Suppress non-essential output\n--version                        Show version\n-h, --help                       Show help\n```\n\n## Entity resolution\n\nMost commands accept both UUIDs and human-readable names where possible:\n\n```bash\n# These are equivalent\nkitsu project get a1b2c3d4-e5f6-7890-abcd-ef1234567890\nkitsu project get \"My Project\"\n\n# Persons can be resolved by email or full name\nkitsu task assign TASK_UUID --person artist@example.com\nkitsu task assign TASK_UUID --person \"Jane Doe\"\n\n# Task statuses accept name or short name\nkitsu task comment add TASK_UUID --status wip -m \"Working on it\"\nkitsu task comment add TASK_UUID --status \"Work In Progress\" -m \"Working on it\"\n```\n\n## About\n\nkitsu-cli is developed by [CGWire](https://www.cg-wire.com), the creators of Kitsu. It is built on top of [Gazu](https://github.com/cgwire/gazu), the official Python client for the Kitsu API.\n\n## License\n\nSee [LICENSE](LICENSE) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcgwire%2Fkitsu-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcgwire%2Fkitsu-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcgwire%2Fkitsu-cli/lists"}