session-log
= aloli-crystal/session-log :toc: left :toc-title: Contents
Session log for Crystal CLIs: re-runs the program under script(1) (or a tee) so that everything shown in the terminal is recorded in a file.
== Install
[source,yaml]
dependencies: session-log: github: aloli-crystal/session-log version: "~> 0.1"
== Quickstart
[source,crystal]
require "session-log"
config = SessionLog::Config.new("monoutil", MonOutil::VERSION, File.join(ENV["HOME"], ".local/state/monoutil/logs")) argv, refuse = SessionLog.strip_flag(ARGV) # --no-log, n'importe où
À l'application de choisir quoi journaliser : jamais l'aide, ni les
commandes qui affichent ou font saisir des secrets.
if !refuse && !config.active? && (cmd = argv.first?) && !{"help", "secret"}.includes?(cmd) exit SessionLog.run(config, argv, config.path(cmd, argv[1]?)) end exit MonOutil.run(argv)
== Status
- Version : see https://github.com/aloli-crystal/session-log/releases[GitHub releases]
- Default branch :
production - License : MIT (see
LICENSE)
== Documentation
- https://aloli-crystal.github.io/session-log/[Antora doc site] (upcoming)
CHANGELOG.adoc— version historyCHANGELOG.fr.adoc— French version
== ALOLI conventions
This shard follows the https://github.com/aloli-crystal[aloli-crystal/*] ecosystem conventions:
VERSIONconstant read at compile-time fromshard.yml— cannot drift.- CLI accepts
session-log help [<sub>](UX-standard equivalent of--help+ per-subcommand focus). - Default branch is
production(nevermain). - SemVer 3-digit for original creations, 4-digit for ports of Ruby gems.
To start a new shard with these conventions, see https://github.com/aloli-crystal/shard-template[aloli-crystal/shard-template].
== License
MIT — see LICENSE.
session-log
- 0
- 0
- 0
- 1
- 1
- 1 day ago
- October 25, 2026
MIT License
Sun, 25 Oct 2026 09:01:34 GMT