This project has the following system level dependencies:

Python dependencies are listed in pyproject.toml.


Arch Linux

$ paru -S gallia


$ pip install gallia


The poetry build system is used to manage dependencies.

Clone repository

$ git clone


Poetry will create a unique virtual python environment with all the required dependencies. All poetry commands must be invoked within the gallia repository.

$ poetry install

More poetry commands are documented upstream.


The created venv can be enabled via poetry with the shell command. A new shell will be spawned with the enabled environment.

$ poetry shell


Run a single command inside the venv without changing the shell environment:

$ poetry run gallia

Development with Plugins

If you want to develop gallia and plugins at the same time, then you need to add gallia as a development dependency to your plugin package. Use your plugin repo for poetry install and poetry shell.

This snippet in pyproject.toml is sufficiant to add a local, editable checkout to your repo:

gallia = { path = "/path/to/local/gallia", develop = true }

Shell Completion


# register-python-argcomplete gallia > /etc/bash_completion.d/gallia


$ mkdir -p ~/.config/fish/completions
$ register-python-argcomplete --shell fish gallia > ~/.config/fish/completions/

IDE Integration


pycharm offers native support for the poetry build system. The src folder in the gallia repository needs to be configured as Sources Root in pycharm.


Most editors (e.g. neovim) support the Language Server Protocol. The required tools are listed as development dependencies in pyproject.toml and are installed automatically via poetry. Please refer to the documentation of your text editor of choice for configuring LSP support.