Expand description
sioul: the Porch, projects, admin windows, budgets and mail accounts, from the terminal.
The terminal is the first interface because agents and scripts use it too; the Qt interface comes on top of the same core (docs/roadmap.md). Every sentence goes through the translator: the language is the configuration’s, else the session’s (docs/i18n.md).
This crate is crates/sioul-cli in the repository; the program it builds,
and so this reference, are named sioul. It decides nothing itself: it
reads and judges with sioul-core, reaches
servers with sioul-sync, and prints. sioul --help, or sioul <command> --help, says what each command takes.
§Where to start reading
Command: one variant per command (sioul porch,sioul tasks …). Its comments are also the help the program prints, throughclap.Cliholds the options every command takes.main: reads the command line, makes theSession(the configuration, where it lives, the language), then runs the command.- The commands that have commands of their own are in the modules below;
the others (
sioul porch,sioul budgets,sioul block…) are functions of this file, named after them (porch_command).
Names such as docs/mcp.md are the design notes in the repository’s docs/
folder. The website shows them too, under the same name:
https://sioul.aurelienpierre.com/dev/mcp.html.
§Modules
accounts: mail accounts and sync:sioul account …,sioul sync,sioul watch.mail: the mail client:sioul mail folders | list | act | send.pgp: OpenPGP keys:sioul pgp list | make | import | export | lookup.dav: contacts and calendars:sioul dav …,sioul contacts,sioul agenda,sioul event.tasks: tasks, notes, links and focus:sioul tasks …,sioul focus …,sioul notes,sioul links.remind: reminders before dates:sioul remind, and--watchwith the window closed.mcp:sioul mcp, what Sioul keeps served to AI agents over the Model Context Protocol.spam:sioul spam, the spam filter learned on this computer (docs/spam-filter.md); computers only.
Modules§
- accounts 🔒
- Mail accounts and sync, from the terminal:
sioul account …,sioul sync,sioul watch. - dav 🔒
- Contacts and calendars from the terminal:
sioul dav add|sync,sioul contacts,sioul contact,sioul agenda,sioul event. - mail 🔒
- The mail client from the terminal:
sioul mail folders | list | act | send. The window offers the same with “Undo” before anything reaches the server; here, a command is already a deliberate act. - mcp 🔒
sioul mcp: what Sioul keeps on this computer, served to AI agents over the Model Context Protocol (https://modelcontextprotocol.io, revision 2025-06-18), on standard input and output, as Claude Code and Claude Desktop start it (docs/mcp.md).- pgp 🔒
- OpenPGP keys from the terminal:
sioul pgp list|make|import|export|lookup|cards. - remind 🔒
sioul remind: reminders before dates (docs/reminders.md), listed, or told with Sioul’s window closed (--watch, started with the session when asked on the Parameters page). The window tells the same ones; each is marked when told, so it is told once, whichever runs.- spam 🔒
sioul spam: the spam filter learned on this computer (crates/sioul-learn).- tasks 🔒
- Tasks, notes, links and focus from the terminal: the next step and why, the list, the board, the timeline; adding a task in one line; importing a whole plan from a file (for agents and scripts); following links.
Structs§
Enums§
- Command 🔒
Functions§
- block_
command 🔒 - budgets_
command 🔒 - card_
command 🔒 - date 🔒
- done_
command 🔒 - hidden 🔒
- A control character (escape sequences start with one), or a mark that turns text right to left: never printed.
- load_
store 🔒 - main 🔒
- one_
line 🔒 - Words from elsewhere (mail, invitations, contacts, file names) on one line, as they are shown: a line break or a tab becomes a space, and the other control characters go (a terminal’s escape sequences, the marks that turn text right to left), so that they can neither break a line of what is shown, nor pass for it, nor drive the terminal.
- plain_
lines 🔒 - Words from elsewhere that keep their lines (a task’s notes, what a server
answered): line breaks and tabs stay, the other control characters go, as
in
one_line. - porch_
command 🔒 - print_
closed_ 🔒porch - print_
indented 🔒 - The first line of a block at two spaces, its follow-ups at four.
- print_
lane 🔒 - print_
mail_ 🔒lines - Mail about money, from every account (or the folders given), and what becomes of it.
- print_
open_ 🔒porch - print_
right_ 🔒now - The one exception to the windows: verified codes, shown whatever the time.
- projects_
command 🔒 - session_
language 🔒 - The session’s language: its variables (LC_ALL, LC_MESSAGES, LANG) when it has them, as in a Linux terminal; else the system’s own setting, as Windows’ and macOS’ terminals may set none (as sioul-app’s backend.rs).
- shield_
command 🔒 - sources 🔒
- The configured accounts’ mail, or the folders given instead.
- system_
locale 🔒 - Elsewhere the session’s variables say it all.
- unblock_
command 🔒 - verify_
command 🔒 - window_
command 🔒