MU SCM(1)

NAME

mu-scm - bindings and shell for the GNU Guile programming language.

SYNOPSIS

mu scm [COMMON-OPTIONS]

starts the GNU Guile shell.

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

runs a GNU Guile script.

DESCRIPTION

mu scm is the command to use the bindings to the GNU Guile programming language. It can either open a shell ("REPL") or run scripts.

Using mu scm, you can script mu.

SCM OPTIONS

  --listen

With the --listen parameter, mu scm starts listening on a UNIX domain socket. This can be used for communicating with the REPL using some external tool, such as Emacs with the "Geiser" package. For details, refer to the mu-scm Info manual.

It blocks after printing the name of the socket (which is a randomized name), 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 mu/scm environment. For example:
    $ mu scm --eval '(format #t "found ~d match(es)\n" (length (mfind "hello")))'
    found 7173 match(es)

  --muhome

Use a non-default directory to store and read the database, write the logs, etc. By default, mu uses the XDG Base Directory Specification (e.g. on GNU/Linux this defaults to ~/.cache/mu and ~/.config/mu). Earlier versions of mu defaulted to ~/.mu, which now requires --muhome=~/.mu.

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

COMMON OPTIONS

  -d, --debug

Makes mu generate extra debug information, useful for debugging the program itself. Debug information goes to the standard logging location; see mu(1).

  -q, --quiet

Causes mu not to output informational messages and progress information to standard output, but only to the log file. Error messages will still be sent to standard error. Note that mu index is much faster with --quiet, so it is 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.

EXIT CODE

This command returns 0 upon successful completion, or a non-zero exit code otherwise.

0.  success

2.  no matches found. Try a different query

11. database schema mismatch. You need to re-initialize mu, see mu-init(1)

19. failed to acquire lock. Some other program has exclusive access to the mu database

99. caught an exception

ENVIRONMENT

By default, mu scm expects its internal files to be found in <prefix>/hare/mu/scm. However, 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.

AUTHOR

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

COPYRIGHT

This manpage is part of mu 1.14.1.

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.