Captures the non-obvious things an agent will hit working on this submodule: - Wire-format quirks (view_kind/bucket_configuration_mode are JSON strings; Task.BucketID is always 0 in GET — use ?expand=buckets and CurrentBucketID; POST /tasks doesn't move buckets, use the dedicated bucket-tasks endpoint; bot creation is at /user/bots; APIToken expires_at is required, use FarFuture for "no expiry"). - Permission discovery via /routes (group names are path-derived; use PermissionsForBot at runtime instead of hard-coding). - OAuth shape (PKCE/S256 mandatory, no client registration, JSON-only token exchange, loopback redirect via 127.0.0.1:0, Shutdown uses context.WithoutCancel to drain on outer cancel). - Credential chain order + per-test HOME/XDG override. - Identifier validation (runelength only) + base-36 timestamp suffix trick for unique e2e identifiers. - mage Aliases map (without it, `mage test` rejects the namespace). - License-header enforcement via local .golangci.yml + code-header- template.txt copy. - Things to actively avoid: bare exec.Command, committing the built binary, stdout from `prime` outside a configured workspace. CLAUDE.md is a symlink to AGENTS.md so Claude Code picks it up via either name. |
||
|---|---|---|
| .claude | ||
| .github | ||
| .vscode | ||
| .zed | ||
| build | ||
| contrib | ||
| desktop | ||
| examples/plugins/example | ||
| frontend | ||
| pkg | ||
| rest | ||
| veans | ||
| .devcontainer.json | ||
| .dockerignore | ||
| .editorconfig | ||
| .envrc | ||
| .gitignore | ||
| .golangci.yml | ||
| .opensourcefinder-verify | ||
| AGENTS.md | ||
| CHANGELOG.md | ||
| CLAUDE.md | ||
| CONTRIBUTING.md | ||
| CRUSH.md | ||
| Dockerfile | ||
| LICENSE | ||
| README.md | ||
| cliff.toml | ||
| code-header-template.txt | ||
| conductor.json | ||
| config-raw.json | ||
| crowdin.yml | ||
| devenv.lock | ||
| devenv.nix | ||
| devenv.yaml | ||
| go.mod | ||
| go.sum | ||
| magefile.go | ||
| main.go | ||
| mise.toml | ||
| nfpm.yaml | ||
| publiccode.yml | ||
| renovate.json | ||
| tsconfig.json | ||
| vikunja.initd | ||
| vikunja.service | ||
README.md
Vikunja
The Todo-app to organize your life.
If Vikunja is useful to you, please consider buying me a coffee, sponsoring me on GitHub or buying a sticker pack. I'm also offering a hosted version of Vikunja if you want a hassle-free solution for yourself or your team.
Table of contents
Security Reports
If you find any security-related issues you don't want to disclose publicly, please use the contact information on our website.
Features
See the features page on our website for a more exhaustive list or try it on try.vikunja.io!
Docs
All docs can be found on the Vikunja home page.
Roadmap
See the roadmap (hosted on Vikunja!) for more!
Contributing
Please check out the contribution guidelines on the website.
License
Most of this repository is licensed under AGPL‑3.0‑or‑later.
The contents of desktop/ are licensed under
GPL‑3.0‑or‑later.
Unsplash Images
Background images from Unsplash are distributed under the Unsplash License. The license requires giving credit to the photographer and Unsplash. See Unsplash’s terms for more information.