A simple CLI for Vikunja task manager
Project description
vja
A command line interface for Vikunja > The todo app to organize your life. Manage your tasks and projects directly from the terminal with simple commands.
It provides a command line interface for adding, viewing and editing todo tasks on a Vikunja Server. The goal is to support a command line based task workflow ~ similar to taskwarrior.
❗Important change in vja 5.0.0
Due to an breaking API change in Vikunja, vja with version >= 5.0.0 will only support Vikunja with version >= 1.0.0, while vja < 5.0.0 is recommended for older Vikunja servers.
(Additionally vja:5.0.0 allows vja --oldapi to support pre-1.0.0 server instances. (Deprecated!))
❗Important change in vja 4.10
New name for configuration file (config.rc) and XDG conform path lookup, see Configuration
Table of contents
Usage
vja --help
vja ls
(You will be prompted for your account on first usage and any time the access token expires, see Features.md.)
More user documentation is available on Features.md.
Installation
Install with pipx (recommended)
(More on pipx here.)
pipx install vja
Upgrade an existing version:
pipx upgrade vja
Install with pip
Not recommended as it might break system dependencies.
python -m pip install --user vja
vja --help
Configuration
Before using vja you must provide a configuration.
vja looks for its configuration at the following paths (in order):
$VJA_CONFIGDIR/config.rc$XDG_CONFIG_HOME/vja/config.rc$HOME/.config/vja/config.rc$HOME/.vjacli/vja.rc(deprecated - for backward compatibility only)
A full example can be found in config.rc.
- Create a configuration file at any valid path (see above) with the following minimal contents
[application] frontend_url=https://try.vikunja.io/ api_url=https://try.vikunja.io/api/v1
(If you cloned from git, you may copy the folder.config/vjato your$HOME/.configdirectory instead.) - Adjust to your needs.
frontend_urlandapi_urlmust point to your own Vikunja server. Especially, the api_url must be reachable from your client. This can be verified, for example, bycurl https://mydomain.com/api/v1/info.
You may change the location of the configuration directory with an environment variable
like VJA_CONFIGDIR=/not/my/home.
Description of configuration
Required options
| Section | Option | Description |
|---|---|---|
| [application] | api_url | The service instance of Vikunja to which vja should connect |
| [application] | frontend_url | Required to open Vikunja in Browser |
Optional options
| Section | Option | Description |
|---|---|---|
| [output] | arbitrary_name | Python format strings which may be referenced on the command line by --custom-format=<option_name>. May contain any valid python f-Format string.Take care: The format string may provide code which will be executed at runtime! Do not use --custom-format if you are unsure.Default: missing |
| [output] | another_format | Multiple formats can be defined for reference. (see above) |
| [urgency_coefficients] | due_date_weight | Weight of dueness in urgency score. Default: 1.0 |
| [urgency_coefficients] | priority_weight | Weight of priority in urgency score. Default: 1.0 |
| [urgency_coefficients] | favorite_weight | Weight of is_favorite in urgency score. Default: 1.0 |
| [urgency_coefficients] | project_weight | Weight of keyword occurrence in project title in urgency score (see project_keywords). Default: 1.0 |
| [urgency_coefficients] | label_weight | Weight of keyword occurrence in label title in urgency score (see label_keywords). Default: 1.0 |
| [urgency_keywords] | project_keywords | Tasks in projects with a title containing these keywords are considered more urgent. Default: None |
| [urgency_keywords] | label_keywords | Tasks labeled with one of these keywords are considered more urgent. Default: None |
Shell completion
Shell tab-completion can be enabled by generating a shell completion script (not specific to vja):
Bash
mkdir -p ~/.config/bash/completions
_VJA_COMPLETE=bash_source vja > ~/.config/bash/completions/vja
Then add to your ~/.bashrc:
source ~/.config/bash/completions/vja
Note: Instead of sourcing the completion script in .bashrc you can just move it to a folder which is supported by bash_completion (e.g. ~/.local/share/bash-completion/completions/).
Zsh
mkdir -p ~/.config/zsh/completions
_VJA_COMPLETE=zsh_source vja > ~/.config/zsh/completions/vja.zsh
Then add to your ~/.zshrc:
source ~/.config/zsh/completions/vja.zsh
Note: The script location is just a suggestion; you can put it wherever you like.
If you use ohmyzsh, place completion scripts under
~/.oh-my-zsh/custom/completions.
Fish
_VJA_COMPLETE=fish_source vja > ~/.config/fish/completions/vja.fish
Note: Fish completions in the directory above will be automatically loaded for new sessions.
Development
Prepare python virtual environment
Python >= 3.9 is recommended. First create a local environment:
python -m venv ./venv
source venv/bin/activate
(That may be source venv/Scripts/activate on some windows machines.)
Local build
Local development install
python -m pip install -r requirements_dev.txt
python -m pip install -e .
Run integration test
Start docker container for vikunja/api:latest and execute pytest against that server instance:
docker compose -f tests/docker-compose.yml up -d
VJA_CONFIGDIR=tests/.vjatest pytest
docker compose -f tests/docker-compose.yml down
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vja-5.0.0.tar.gz.
File metadata
- Download URL: vja-5.0.0.tar.gz
- Upload date:
- Size: 40.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d7abc8c5c9df83b5b0c3dc3db05fb4599b1d16b0b2e2bf3749c6fbe18a25a85c
|
|
| MD5 |
79cc0ebea50e1e9df3e4434abe449d65
|
|
| BLAKE2b-256 |
dabaa74bdb5706d38ab251a301902a08c2697b4c88e64f7b943cd38c9f913d76
|
File details
Details for the file vja-5.0.0-py3-none-any.whl.
File metadata
- Download URL: vja-5.0.0-py3-none-any.whl
- Upload date:
- Size: 37.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a67d4989c1302dae90e6f5993e8fe3df8e0d9654a3dff7e9280f6f21015e1540
|
|
| MD5 |
46879fef100838aaeb4ac4097c5ea3f3
|
|
| BLAKE2b-256 |
28f6da3b6c38ad2987972e4b22e77c684894c0cc3cf16bc3bcbfedb80d358ca1
|