MU-SCM(1)

πŸ’– MU-SCM(1) β€” the general commands manual page bestie πŸ’–

okay so this is the manual for mu-scm (that's section 1 of the General Commands Manual, for the record), and it's literally the bindings + shell situation for the GNU Guile programming language. buckle up πŸ¦‹


✨ NAME ✨

mu-scm β€” bindings and shell for the GNU Guile programming language. that's it, that's the whole name entry, slay πŸ’…


✨ SYNOPSIS ✨

mu scm [COMMON-OPTIONS]

this one starts the GNU Guile shell. like, you run it and boom, you're in the shell 🌸

mu scm [COMMON-OPTIONS] [[COMMAND] -- [COMMAND-OPTIONS]]

and THIS one runs a GNU Guile script. so you can just yeet a script at it and go 🫢


✨ DESCRIPTION ✨

so mu scm is the command you use to get at the bindings for the GNU Guile programming language. it can do one of two things: open up a shell (a "REPL") or run scripts. pick your fighter πŸ’€

and like, the whole point? using mu scm, you can script mu. no cap. your mail, your scripts, your rules πŸ‘‘


✨ SCM OPTIONS ✨

🌈 --listen

with the --listen parameter, mu scm starts listening on a UNIX domain socket. this is for talking to the REPL with some external tool, like Emacs with the "Geiser" package. full deets live in the mu-scm Info manual, iykyk ✨

it blocks after printing the name of the socket β€” and the socket name is a randomized name, bestie β€” prefixed by UNIX_CONNECT: and ending with a newline. for instance:

UNIX-CONNECT:/run/user/1000/mu-scm-socket-4eb5db40

🌸 --eval

with the --eval option you can evaluate an expression in the mu/scm environment. example time, watch this:

$ mu scm --eval '(format #t "found ~d match(es)\n" (length (mfind "hello")))'
found 7173 match(es)

ate, honestly πŸ’…

πŸŽ€ --muhome

use a non-default directory to store and read the database, write the logs, etc. by default, mu follows the XDG Base Directory Specification (so like, on GNU/Linux this defaults to ~/.cache/mu and ~/.config/mu). earlier versions of mu defaulted to ~/.mu, which now requires --muhome=~/.mu. the way that changed 😭

the environment variable MUHOME can be used as an alternative to --muhome. the latter has precedence, periodt.


✨ COMMON OPTIONS ✨

  • -d, --debug β€” makes mu generate extra debug information, which is useful for debugging the program itself. debug info goes to the standard logging location; go peek at mu(1) for that πŸ¦‹
  • -q, --quiet β€” causes mu to not output informational messages and progress information to standard output, only to the log file. error messages will still be sent to standard error. and heads up: mu index is much faster with --quiet, so it's recommended you use this option when using mu from scripts etc. 🌟
  • --log-stderr β€” causes mu to not output log messages to standard error, in addition to sending them to the standard logging location.
  • --nocolor β€” do not use ANSI colors. the environment variable NO_COLOR can be used as an alternative to --nocolor πŸ’œ
  • -V, --version β€” prints mu version and copyright information.
  • -h, --help β€” lists the various command line options. your little helper fr fr 🫢

✨ EXIT CODE ✨

this command returns 0 upon successful completion, or a non-zero exit code otherwise. here's the whole roster:

  1. 0 β€” success ✨
  2. 2 β€” no matches found. try a different query πŸ”
  3. 11 β€” database schema mismatch. you need to re-initialize mu, see mu-init(1) πŸ’€
  4. 19 β€” failed to acquire lock. some other program has exclusive access to the mu database πŸ”’
  5. 99 β€” caught an exception 😭

✨ ENVIRONMENT ✨

by default, mu scm expects its internal files to be found in <prefix>/hare/mu/scm. but β€” for development/testing β€” you can set the environment variable MU_SCM_DIR to some alternative directory 🧚


✨ SEE ALSO ✨

the full documentation for mu scm is maintained as a Texinfo manual. if the info and mu programs are properly installed at your site, the command info mu-scm should give you access to the complete manual πŸ“–

http://www.schemers.org provides a general introduction to the Scheme language.

emacs(1)


✨ REPORTING BUGS ✨

please report bugs at https://github.com/djcb/mu/issues. bestie, they want to hear from you πŸ™ˆ


✨ AUTHOR ✨

Dirk-Jan C. Binnema <djcb@djcbsoftware.nl> πŸ‘‘


this manpage is part of mu 1.14.2.

Copyright Β© 2008-2026 Dirk-Jan C. Binnema. License GPLv3+: GNU GPL version 3 or later https://gnu.org/licenses/gpl.html. this is free software: you are free to change and redistribute it. there is NO WARRANTY, to the extent permitted by law. (like, genuinely no warranty, that part is serious, not a vibe πŸ’€)


okay that's the whole page!! that was mu-scm, general commands manual, part of mu 1.14.2, brought to you with love and also no warranty whatsoever πŸ’– πŸŽ€ πŸ¦‹ go script your mail, main character 🌈 ⭐

πŸ“¦ where this page comes from