id = "tcsh"
name = "tcsh"
homepage = "https://www.tcsh.org/"
description = "Enhanced, fully compatible version of the Berkeley C shell"
executables = ["tcsh"]
[dotfiles]
paths = ["~/.tcshrc", "~/.cshrc", "~/.login", "~/.logout"]
secret = []
[commands]
format = 1
label = "Run tcsh"
description = "Start tcsh, run a command string, or run a script file. Debug and startup flags only; other flags are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = false, short_attached = false, short_bundles = true }
[[commands.source]]
id = "man"
kind = "manual"
url = "https://man.archlinux.org/man/tcsh.1"
revision = "2026-10-27"
evidence = """
-c Commands are read from the following argument (which must be present, and must be a single argument), stored in the command shell variable for reference, and executed.
-e The shell exits if any invoked command terminates abnormally or yields a non-zero exit status.
-f The shell does not load any resource or startup files, or perform any command hashing, and thus starts faster.
-i The shell is interactive and prompts for its top-level input, even if it appears to not be a terminal.
-n The shell parses commands but does not execute them. This aids in debugging shell scripts.
-v Sets the verbose shell variable, so that command input is echoed after history substitution.
"""
[[commands.field]]
id = "command"
label = "Command string"
type = "string"
option = ["-c"]
sources = ["man"]
[[commands.field]]
id = "no_startup"
label = "Skip startup files"
type = "boolean"
option = ["-f"]
sources = ["man"]
[[commands.field]]
id = "exit_on_error"
label = "Exit on failing command"
type = "boolean"
option = ["-e"]
sources = ["man"]
[[commands.field]]
id = "interactive"
label = "Force interactive"
type = "boolean"
option = ["-i"]
sources = ["man"]
[[commands.field]]
id = "parse_only"
label = "Parse only, do not execute"
type = "boolean"
option = ["-n"]
sources = ["man"]
[[commands.field]]
id = "verbose"
label = "Echo input after history substitution"
type = "boolean"
option = ["-v"]
sources = ["man"]
[[commands.field]]
id = "script"
label = "Script file"
type = "path"
position = 0
path = { kind = "file", role = "input" }
sources = ["man"]
[[commands.task]]
id = "run_command"
label = "Run a command string"
fields = ["command", "no_startup"]
required = ["command"]
[[commands.task]]
id = "check_script"
label = "Syntax-check a script"
fields = ["script", "parse_only"]
required = ["script"]
set = { parse_only = [true] }
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["command", "script", "no_startup", "parse_only"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["exit_on_error", "interactive", "verbose"]