id = "gost"
name = "GOST"
homepage = "https://gost.run/"
description = "GO Simple Tunnel - a simple tunnel written in golang"
executables = ["gost"]
[dotfiles]
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"]