id = "gost" name = "GOST" homepage = "https://gost.run/" description = "GO Simple Tunnel - a simple tunnel written in golang" executables = ["gost"] [dotfiles] # GOST's official configuration overview documents gost.yml or gost.json in # the current directory, /etc/gost, and $HOME/gost; only the user-home path is # in scope here. Tunnel configuration can contain handler/listener passwords, # so both supported home files are treated as secret content. # https://latest.gost.run/en/getting-started/configuration-overview/ paths = ["~/gost/"] secret = ["~/gost/gost.yml", "~/gost/gost.json"] [commands] format = 1 label = "Run a tunnel or proxy" description = "Start GOST from the command line with one or more -L services, optionally forwarded through a -F chain. YAML/JSON config files and advanced service options are not covered." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = false, short_attached = false, short_bundles = false } [[commands.source]] id = "docs" kind = "manual" url = "https://gost.run/en/getting-started/quick-start/" revision = "2026-10-27" evidence = """ gost -L http://:8080 gost -L http://:8080 -L socks5://:1080 gost -L http://:8080 -F http://192.168.1.1:8080 gost -L tcp://:8080/192.168.1.1:80 gost -L=rtcp://:2222/:22 -F socks5://192.168.1.2:1080 docker run --rm gogost/gost -V """ [[commands.field]] id = "listen" label = "Services (-L)" description = "Scheme://[host]:port, for example http://:8080, socks5://:1080 or tcp://:8080/192.168.1.1:80." type = "string" option = ["-L"] multiple = true suggestions = [{ value = "http://:8080", label = "HTTP proxy on 8080" }, { value = "socks5://:1080", label = "SOCKS5 proxy on 1080" }] sources = ["docs"] [[commands.field]] id = "forward" label = "Forwarding chain (-F)" description = "Upper-level proxies, applied in the order given." type = "string" option = ["-F"] multiple = true sources = ["docs"] [[commands.field]] id = "version" label = "Print version" type = "boolean" option = ["-V"] sources = ["docs"] [[commands.task]] id = "proxy" label = "Start a proxy" fields = ["listen", "forward"] required = ["listen"] set = { listen = ["http://:8080"] } [[commands.task]] id = "version" label = "Show version" fields = ["version"] required = ["version"] set = { version = [true] } [[commands.group]] id = "basic" label = "Basic" fields = ["listen", "forward", "version"]