dida365-cli is a Go CLI for Dida365 OpenAPI.
- Go >= 1.23 (tested with Go 1.24.x)
- A Dida365 developer app (
client_id,client_secret,redirect_uri) - This repo uses
goenvto manage Go versions. Initializegoenvin your shell before running build/test commands:
export GOENV_ROOT="$HOME/.goenv"
export PATH="$GOENV_ROOT/bin:$PATH"
eval "$(goenv init -)"
go versiongo build -o dida365-cli ./cmd/didago run ./cmd/dida --help- Initialize OAuth app config:
go run ./cmd/dida auth init \
--client-id <client_id> \
--client-secret <client_secret> \
--redirect-uri <redirect_uri>- Get authorization URL and open it in browser:
go run ./cmd/dida auth login- Copy
codefrom redirect URL and exchange token:
go run ./cmd/dida auth token --code <authorization_code>- Check auth status:
go run ./cmd/dida auth statusdida365-cli auth init|login|token|refresh|status|logoutdida365-cli projects listdida365-cli projects create --name "<project_name>" [flags]dida365-cli list --project <project_id>dida365-cli show --project <project_id> --id <task_id>dida365-cli add --project <project_id> --title "..."dida365-cli update --project <project_id> --id <task_id> [flags]dida365-cli done --project <project_id> --id <task_id> [--json]dida365-cli delete --project <project_id> --id <task_id> [--json]dida365-cli version [--json]
Use --dry-run to preview requests without executing.
For agent workflows, prefer --json on all actionable commands.
Use --no-cache (or DIDA_NO_CACHE=1) to disable local read cache.
dida365-cli list table output includes frequently-used fields by default:
- completion state
- due date
- priority
- content (truncated preview)
Create input limit:
dida365-cli addenforces text length< 500characters for--title,--content,--desc.- This only limits CLI create input; existing longer task content can still be displayed.
Write debounce:
- write commands (
add/update/done/delete/projects create) are debounced for 3 seconds. - repeated identical write requests in the short window will be blocked to reduce accidental duplicate operations.
Read cache:
- read commands (
projects list,list,show) use a local 10-second cache. - any successful write command clears read cache to reduce stale reads.
- Quick manual:
docs/guides/agent-cli-quick-manual.md - Maintenance rules:
docs/guides/agent-manual-rules.md - Onboarding:
docs/guides/agent-project-onboarding.md - Release:
docs/guides/release-homebrew.md
- Workflow:
docs/process/COLLAB-WORKFLOW.md - Task board:
docs/process/TASK-BOARD.md - Handoff:
docs/process/HANDOFF.md - Design gates:
docs/process/design-gates/README.md
Default config path:
~/.config/dida365-cli/config.json~/.config/dida365-cli/cache.json(read cache state)~/.config/dida365-cli/debounce.json(write debounce state)- This project uses a fixed HOME-based default path on all platforms (does not use OS-specific
UserConfigDir).
Override config path:
dida365-cli --config /path/to/config.json auth statusOverride access token directly:
DIDA_ACCESS_TOKEN=<token> dida365-cli projects listMIT. See LICENSE.