id = "gauche"
name = "Gauche"
homepage = "https://practical-scheme.net/gauche/"
description = "Gauche is an R7RS Scheme implementation designed for scripting."
executables = ["gosh"]
[dotfiles]
paths = ["~/.gaucherc"]
secret = []
side_effect = false
[commands]
format = 1
label = "Run Scheme"
description = "Run a Scheme script, evaluate an expression, or start the REPL with gosh. Feature flags (-f, -F), profiling and R7RS mode are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = false, short_attached = true, short_bundles = false }
[[commands.source]]
id = "man"
kind = "manual"
url = "https://manpages.debian.org/testing/gauche/gosh.1.en.html"
revision = "debian testing 2026-10"
evidence = """
gosh [-bhiqV] [-I path ] [-A path ] [-u module ] [-l file ] [-L file ] [-e expr ] [-E expr ] [-m module ] [-f flag ] [-F feature ] [-p type ] [-r standard ] [--] [ script argument ... ]
-b Batch mode. Doesn't print prompt even the standard input is a terminal.
-i Interactive mode. Forces to print prompt, even the standard input is not a terminal.
-q Prevents reading the default initialization file.
-Ipath Adds path in front of the load path list.
-Apath Appends path to the tail of the load path list.
-umodule Loads and imports module, as if "(use module )" is specified in the code.
-lfile Loads a Scheme file file.
-eexpr Evaluates a Scheme expression expr.
-V Prints gosh version and exits.
"""
[[commands.field]]
id = "script"
label = "Script file"
description = "Leave empty to start the interactive REPL."
type = "path"
position = 0
min = 0
path = { kind = "file", role = "input", must_exist = true }
sources = ["man"]
[[commands.field]]
id = "script_args"
label = "Script arguments"
type = "string"
position = 1
multiple = true
min = 0
sources = ["man"]
[[commands.field]]
id = "expr"
label = "Evaluate expression"
type = "string"
option = ["-e"]
effect = "exec"
sources = ["man"]
[[commands.field]]
id = "load_file"
label = "Load file first"
type = "path"
option = ["-l"]
path = { kind = "file", role = "input" }
sources = ["man"]
[[commands.field]]
id = "use_module"
label = "Import module"
type = "string"
option = ["-u"]
sources = ["man"]
[[commands.field]]
id = "load_path"
label = "Prepend load path"
type = "path"
option = ["-I"]
path = { kind = "directory", role = "input" }
sources = ["man"]
[[commands.field]]
id = "append_load_path"
label = "Append load path"
type = "path"
option = ["-A"]
path = { kind = "directory", role = "input" }
sources = ["man"]
[[commands.field]]
id = "batch"
label = "Batch mode (no prompt)"
type = "boolean"
option = ["-b"]
sources = ["man"]
[[commands.field]]
id = "interactive"
label = "Force prompt"
type = "boolean"
option = ["-i"]
sources = ["man"]
[[commands.field]]
id = "no_init"
label = "Skip default init file"
type = "boolean"
option = ["-q"]
sources = ["man"]
[[commands.task]]
id = "script"
label = "Run a script"
fields = ["script", "script_args", "load_path", "use_module", "no_init"]
required = ["script"]
[[commands.task]]
id = "repl"
label = "Start the REPL"
fields = ["load_file", "use_module", "load_path", "no_init"]
required = []
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["script", "script_args", "expr", "load_file", "use_module"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["load_path", "append_load_path", "batch", "interactive", "no_init"]