A command line interface to Atlassian Confluence.
Because Confluence at my company loads a whopping 9.13MB of JavaScript just to display the home page.
This program is inspired by applications like mutt, newsboat or tig and takes a minimalist approach to accessing this bloated but quite useful piece of software.
Fortunately, on the flip side, Confluence behaves nicely when interfacing with other things. There is an API! Check it out:
(This is from a public Confluence. If you see yourself in this asciicast and don't like it, contact me.)
I'm a big believer in minimalism and CLI/TUI tools. They always respond virtually instantly to user input (safe for communication over the network) and their keyboard-driven nature makes it a breeze to work with once you have the keyboard mappings down. Plus, their true power often comes through their ability to interact with other programs and scripts, which makes automation so much easier. Displaying Confluence pages in a TUI browser like elinks or lynx naturally removes all distractions and focuses on what's most important: the content. Besides pages with lots of images or tables, this makes it surprisingly pleasant to read. And your fully fledged GUI browser is just one key press away...
Naturally, Congruence was written entirely in vim.
The goal is primarily to consume content served by Confluence and have minimal interactions, such as liking content and posting comments. Editing pages is out of scope for sure.
Disclaimer: I am not affiliated with Atlassian in any way. At the point of writing, I only have one Confluence instance to work with. I also never installed a Confluence and I have only a vague idea of what is a plugin and what is core functionality. I'm just a regular power user. This will work only with Confluence 6.0 or higher.
Make sure you have all dependencies installed, most importantly Python 3.6
or higher. The easiest is to just execute pip3 install .
, which will put
an executable named congruence
in your ~/.local/bin
directory, which
must be in your $PATH
. Alternatively, use your favorite virtual
environment manager.
Next, copy config.yaml.sample
to $XDG_CONFIG_HOME/congruence/config.yaml
(or
$HOME/.config/congruence/
if $XDG_CONFIG_HOME
is not defined) and edit it to
your liking.
When using the app, you can always press '?' to see what's going on and what your next options are.
- Cache metadata
- Keep track of 'seen'/'unseen' objects
- Extract links and images of content
- Show scroll percentage in title bar
- Improve search
- Add a 'versions' view and allow diffs between arbitrary versions
- Edit comments
GPLv3. See LICENSE for more information.
Adrian Vollmer, 2020