Skip to main content

A tui writing app

Project description

Aengus - A TUI Writing App

Editor View
Statistics View

Aengus is a simple editor for the terminal tailored towards novel writing, especially fantasy and science fiction. It offers nice highlighting features for characters, places, artifacts or more. It can be easily configured to your workflow and comes with some built in statistics. It uses simple markdown files as the base layer so your work can be easily imported from other apps.

Installation

Install with pip install aengus.

Then create a project with aengus new <PROJECT_NAME> and open with aengus open <PROJECT_NAME>.

Or get help with aengus -h.

Documentation

To see all Keyboard Shortcuts press ctrl+p to open the command palette where you can see all shortcuts for the app and editor with a small explanation. The keybindings have been tested on Windows for Powershell using the Terminal App. If you are on a different OS or just want to change the keybindings you can do so in your aengus.toml.

[keybindings]
# all the app keybindings
quit = "ctrl+q"
toggle_command_palette = "ctrl+p"
statistics = "ctrl+l"
set_sprint_wc_goal = "ctrl+d"
new_file = "ctrl+n"
save = "ctrl+s"
close = "ctrl+t"
open_finder = "ctrl+o"
back_one_file = "ctrl+b"
delete_file = "ctrl+k"
rename_file = "ctrl+r"
close_overlay = "escape"
find_replace = "ctrl+f"
focus_left = "alt+left"
focus_right = "alt+right"
resize_editor = "ctrl+j"
# all the editor keybindings that can be changed for now
open_mention = "ctrl+g"
word_left = "ctrl+left"
word_right = "ctrl+right"

Aengus can interpret every folder as a project with an aengus.toml file at its root. When creating a new project with aengus new <PROJECT_NAME> it will create a new folder with the following structure:

 - [characters]  <--- put all your character sheets in here
   - ..
 - [places]  <--- put all your place sheets in here
   - ..
 - [notes]  <--- for notes that will not be used for wordcount or highlighting
   - ..
 - [novel]  <--- put all your chapters in here
   - ..
 - aengus_stats.csv
 - aengus.toml

To create a new character inside the editor press ctrl+n and put a new markdown file into the characters folder. To further customize the highlighting Aengus uses frontmatter, so you can preface the markdown file with the following:

---
name: Sima # the main name of this character (omit and the filename will be used)
aliases:
  - "Little Mouse" # a list of aliases to highlight the character (optional)
color: "#e44e0e" # (this color will be used to highlight this character, omit for default)
---

The same works for places or all the other mention folders you defined in your project toml under

[mentions]
folders = ["characters", "places"] # <---- here

# add this section to customize the mention colors yourself, delete to use the theme colors
[mention_colors]
fallback = "#dda0dd" # <---- used when a folder has no specific mention color yet
characters = "#ffd700" # <---- change this for the fallback color of all characters

To change the theme of the app you can select a theme in your aengus.toml.

[theme]
name = "aengus" # or for a warmer version use aengus-autumn

If you want more control over the highlighting you can override any color of the theme directly in your aengus.toml. Here is a selection of all the colors that can be changed. All colors you omit will be filled by the selected theme, so by default from aengus theme.

[theme]
primary = "#2ec4b6"
secondary = "#15534e"
accent = "#ffb454"
foreground = "#fcfdfa"
background = "#00061D"
cursor = "#ffb454"
text = "#eaecea"
dialogue = "#f2e0bd"
italic = "#89f2fe"
gutter = "#6272a4"
selection = "#264f78"

Aengus records simple analytics in the aengus_stats.csv file and displays it under the Statistics tab (open with ctrl+l).

To build your book into a nice, standalone HTML file run aengus build <PROJECT_ROOT>. By default your chapters will be ordered alphabetically how they appear in your novel folder. If you want to change the order of your chapter add this to your aengus.toml:

[book]
chapter_order = [
    "First Chapter.md",
    "Second Chapter.md",
    ...
]

Setup Environment

This repository uses uv. Run uv sync to create the virtual environment.

Install with pip install -e . to get instant feedback while editing.

On windows add the Scripts folder to PATH if you have not already.

Planned Features

  • writing personas based on writing activity (Night Owl for writing at night, Overthinker for spending only little time per seession actually writing)

Bugs to investigate

  • when on the Statistics page and the user opens the Command Panel, closes it and switches back to Editor View, the left editor always gets focussed

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aengus-0.5.0.tar.gz (1.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aengus-0.5.0-py3-none-any.whl (1.1 MB view details)

Uploaded Python 3

File details

Details for the file aengus-0.5.0.tar.gz.

File metadata

  • Download URL: aengus-0.5.0.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for aengus-0.5.0.tar.gz
Algorithm Hash digest
SHA256 68eb2c0b6bd8e61eafc85ecd96fe3ada1cee3415f04c9ded79e97ebda4fd9c4e
MD5 e244337b313471252034d4b8663f163d
BLAKE2b-256 2cc3bcfb9f7598b600839bfd0a50c3135c864dd47178083a71ac11380953d0d5

See more details on using hashes here.

File details

Details for the file aengus-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: aengus-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for aengus-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 83c46bc3c0e02037ca4055837fd6d49762c045d7e2ff6c4b093f64ef2ee7767c
MD5 441840b74fcd3a2803cb531c3b4289f1
BLAKE2b-256 0a139f9030f88496a0c494c17f485c3486223782fdffb048cdfc2bd9a02c5479

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page