{"id":49670240,"url":"https://github.com/plattnum/planka-cli","last_synced_at":"2026-05-06T22:17:26.186Z","repository":{"id":352182103,"uuid":"1211406359","full_name":"plattnum/planka-cli","owner":"plattnum","description":"Deterministic, scriptable CLI and live TUI for Planka kanban — built for shell scripts, CI/CD, and AI agents.","archived":false,"fork":false,"pushed_at":"2026-04-26T06:42:42.000Z","size":1946,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-26T08:25:28.360Z","etag":null,"topics":["ai-agents","automation","cli","kanban","planka","project-management","ratatui","rust","sdk","terminal","tui"],"latest_commit_sha":null,"homepage":"https://plattnum.github.io/planka-cli","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/plattnum.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":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-04-15T11:09:53.000Z","updated_at":"2026-04-26T06:42:46.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/plattnum/planka-cli","commit_stats":null,"previous_names":["plattnum/planka-cli"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/plattnum/planka-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plattnum%2Fplanka-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plattnum%2Fplanka-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plattnum%2Fplanka-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plattnum%2Fplanka-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/plattnum","download_url":"https://codeload.github.com/plattnum/planka-cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plattnum%2Fplanka-cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32714081,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-06T19:35:05.142Z","status":"ssl_error","status_checked_at":"2026-05-06T19:35:03.996Z","response_time":117,"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":["ai-agents","automation","cli","kanban","planka","project-management","ratatui","rust","sdk","terminal","tui"],"created_at":"2026-05-06T22:17:22.749Z","updated_at":"2026-05-06T22:17:26.180Z","avatar_url":"https://github.com/plattnum.png","language":"Rust","funding_links":["https://www.buymeacoffee.com/plattnum"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/images/hero.png\" alt=\"plnk — CLI \u0026 TUI for Planka\" width=\"100%\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\u003cem\u003escriptable • live • hierarchical\u003c/em\u003e\u003c/p\u003e\n\n# plnk\n\n[![CI](https://github.com/plattnum/planka-cli/actions/workflows/ci.yml/badge.svg)](https://github.com/plattnum/planka-cli/actions/workflows/ci.yml)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n[![Buy Me A Coffee](https://img.shields.io/badge/Buy%20Me%20a%20Coffee-ffdd00?style=for-the-badge\u0026logo=buy-me-a-coffee\u0026logoColor=black)](https://www.buymeacoffee.com/plattnum)\n\nA deterministic, scriptable, hierarchy-aware CLI and SDK for [Planka](https://planka.app) kanban project management. Plus a live terminal TUI explorer built on the same stack.\n\n\u003e [!NOTE]\n\u003e Tested against self-hosted [Planka](https://planka.app) only. The cloud-hosted service hasn't been exercised yet — your mileage may vary.\n\n## Two tools, one stack\n\n| Tool | What it's for |\n|------|---------------|\n| [`plnk`](#plnk-cli) | Scriptable CLI for automation, CI/CD, and AI workflows |\n| [`plnk-tui`](#plnk-tui) | Live terminal explorer with real-time websocket sync |\n\nThey keep auth separate by default: `plnk` is automation/AI-oriented, while `plnk-tui` has its own human login config. Landing page at [plattnum.github.io/planka-cli](https://plattnum.github.io/planka-cli).\n\n## Install\n\nPrebuilt binaries for macOS (Apple Silicon + Intel), Linux (arm64 + x64), and Windows (x64) ship on every [GitHub Release](https://github.com/plattnum/planka-cli/releases/latest), with shell installers and SHA-256 checksums. Building from source requires Rust 1.87+.\n\n```bash\n# Easiest — shell installer pulls the latest prebuilt binary\ncurl --proto '=https' --tlsv1.2 -LsSf https://github.com/plattnum/planka-cli/releases/latest/download/plnk-cli-installer.sh | sh\ncurl --proto '=https' --tlsv1.2 -LsSf https://github.com/plattnum/planka-cli/releases/latest/download/plnk-tui-installer.sh | sh\n\n# From a checkout\ncargo install --path crates/plnk-cli --force\ncargo install --path crates/plnk-tui --force\n\n# Or from git\ncargo install --git https://github.com/plattnum/planka-cli plnk-cli\ncargo install --git https://github.com/plattnum/planka-cli plnk-tui\n```\n\n## Quickstart\n\n```bash\nplnk init                 # optional: configure CLI/automation credentials\nplnk auth status          # verify CLI credentials resolve\nplnk project list         # start driving Planka from scripts/agents\nplnk-tui                  # launch the human TUI; prompts on first run\n```\n\nWalkthrough: [`docs/cli/examples.md`](docs/cli/examples.md).\n\n## `plnk` (CLI)\n\nShape: `plnk \u003cresource\u003e \u003caction\u003e [target] [flags]`. Design principles:\n\n- **Strict hierarchy** — `project → board → list → card → task/comment`. All `find`s are scoped. No global flat queries.\n- **Typed exit codes** — `0` success · `2` validation · `3` auth · `4` not-found · `5` server.\n- **Three outputs** — `table` for humans, `json` for scripts, `markdown` for reports.\n- **Machine-readable help** — `plnk \u003ccmd\u003e --help --output json` returns a stable schema agents can bind to before running.\n- **stdout is data, stderr is logs.**\n\nReference docs, one per resource:\n\n- [Projects](docs/cli/projects.md) · [Boards](docs/cli/boards.md) · [Lists](docs/cli/lists.md) · [Cards](docs/cli/cards.md)\n- [Tasks](docs/cli/tasks.md) · [Comments](docs/cli/comments.md) · [Labels](docs/cli/labels.md)\n- [Attachments](docs/cli/attachments.md) · [Memberships](docs/cli/memberships.md) · [Users](docs/cli/users.md)\n- [Authentication](docs/cli/auth.md) · [Grammar reference](docs/cli/grammar.md) · [Transport policy](docs/cli/transport.md)\n- [Worked examples](docs/cli/examples.md)\n\n## `plnk-tui`\n\nA terminal-native explorer for the same hierarchy. Single-board websocket subscription means edits from the browser appear in your terminal in near real time.\n\n```bash\nplnk-tui\n# first run prompts for server, username, and password\n# then offers to save server + username for next time\n```\n\nNavigate projects → boards → lists → cards with `↑↓→Enter`. Press `L` on any board to promote it to the live target. Edit titles inline with `e` or descriptions in `$EDITOR` with `E`. Press `y` to copy the selected node's ID hierarchy as JSON to the clipboard (or `Y` for a paste-ready `plnk` snapshot command) — built for handing context off to an AI agent in one keystroke.\n\nEnv pre-fills: `PLNK_TUI_SERVER`, `PLNK_TUI_USERNAME`, `PLNK_TUI_PASSWORD`, `PLNK_TUI_BOARD`.\n\n\u003e **Upgrading from 0.1.3?** These vars were `PLANKA_*` before, and the TUI used to share `plnk`'s `~/.config/plnk/config.toml`. Both are now separate — `plnk-tui` has its own `~/.config/plnk-tui/config.toml` and reads `PLNK_TUI_*` env vars only. The CLI's `PLANKA_SERVER` / `PLANKA_TOKEN` are unaffected. See [CHANGELOG.md](CHANGELOG.md) for the full migration note.\n\nDocs: [`docs/tui/`](docs/tui/) — [overview](docs/tui/overview.md) · [keybindings](docs/tui/keybindings.md) · [live-target model](docs/tui/live-target.md) · [tree view reference](docs/tui/tree-view.md) · [fast copy](docs/tui/fast-copy.md).\n\n## Architecture\n\nThree-crate Rust workspace:\n\n- **`plnk-core`** — standalone [Planka](https://planka.app) SDK. HTTP client, domain models, API traits, auth, typed errors. Usable on its own.\n- **`plnk-cli`** — the `plnk` binary. Clap grammar + output rendering over `plnk-core`.\n- **`plnk-tui`** — the `plnk-tui` binary. Ratatui explorer + Engine.IO websocket.\n\nAPI versioning lives behind traits. If Planka changes its API, only the `PlankaClientV1` implementation changes — domain models and the CLI layer are untouched.\n\n## Building\n\n```bash\ncargo check\ncargo clippy -- -D warnings\ncargo fmt --check\ncargo test\n```\n\nSee [AGENTS.md](AGENTS.md) for the full design rules, API quirks, and contribution guidelines.\n\n## Support\n\nIf this is useful to you, consider buying me a coffee.\n\n[![Buy Me A Coffee](https://img.shields.io/badge/Buy%20Me%20a%20Coffee-ffdd00?style=for-the-badge\u0026logo=buy-me-a-coffee\u0026logoColor=black)](https://www.buymeacoffee.com/plattnum)\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplattnum%2Fplanka-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fplattnum%2Fplanka-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplattnum%2Fplanka-cli/lists"}