{"id":29908814,"url":"https://github.com/woozymasta/smsq","last_synced_at":"2025-08-02T00:44:39.188Z","repository":{"id":307194053,"uuid":"1028667986","full_name":"WoozyMasta/smsq","owner":"WoozyMasta","description":"Steam Master Server Query CLI (smsq) — a command-line tool to retrieve and filter game server lists from the Steam Master Server","archived":false,"fork":false,"pushed_at":"2025-07-29T22:20:28.000Z","size":33,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-07-30T00:55:31.821Z","etag":null,"topics":["master-server","master-server-query","steam","steam-api","steam-query"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/WoozyMasta.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-29T22:05:11.000Z","updated_at":"2025-07-29T22:21:44.000Z","dependencies_parsed_at":"2025-07-30T00:55:34.365Z","dependency_job_id":"35649503-dca3-4d91-b27d-f4c1c9478721","html_url":"https://github.com/WoozyMasta/smsq","commit_stats":null,"previous_names":["woozymasta/smsq"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/WoozyMasta/smsq","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WoozyMasta%2Fsmsq","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WoozyMasta%2Fsmsq/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WoozyMasta%2Fsmsq/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WoozyMasta%2Fsmsq/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WoozyMasta","download_url":"https://codeload.github.com/WoozyMasta/smsq/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WoozyMasta%2Fsmsq/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268320394,"owners_count":24231803,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-01T02:00:08.611Z","response_time":67,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["master-server","master-server-query","steam","steam-api","steam-query"],"created_at":"2025-08-02T00:44:21.315Z","updated_at":"2025-08-02T00:44:39.078Z","avatar_url":"https://github.com/WoozyMasta.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Steam Master Server Query CLI\n\nSteam Master Server Query CLI (smsq) — a command-line tool to retrieve and\nfilter game server lists from the [Steam Master Server][].\nIt supports advanced filtering, JSON and table output formats, and is\ndesigned for server administrators, gamers, and automation scripts.\n\n\u003e [!NOTE]  \n\u003e A valid [Steam API Key][] is required to use this tool.\n\n## Features\n\n* Query Steam Master Server for game servers.\n* Filter results by AppID, map, tags, or server properties (e.g. VAC, password).\n* Output in JSON (for easy jq parsing) or formatted table view.\n* Supports NOR and NAND filters for exclusion logic.\n* Cross-platform: Linux, Windows, MacOS binaries.\n* Lightweight and with minimal dependencies.\n\n## Why smsq\n\nThe Steam Master Server Query API requires constructing complex filter strings\n(e.g., `appid\\221100\\map\\namalsk`) and remembering all supported keys.\nsmsq simplifies this by providing all filter keys with built-in descriptions\nand validation, so you can build powerful queries using simple `key=value`\npairs without memorizing obscure syntax.\n\nIt replaces manual curl calls and raw JSON parsing with a clean,\nuser-friendly CLI.\n\n## Installation\n\nYou can download the latest version of the programme by following the links:\n\n* [MacOS arm64][]\n* [MacOS amd64][]\n* [Linux i386][]\n* [Linux amd64][]\n* [Linux arm][]\n* [Linux arm64][]\n* [Windows i386][]\n* [Windows amd64][]\n* [Windows arm64][]\n\nFor Linux you can also use the command\n\n```bash\ncurl -#SfLo /usr/bin/smsq \\\n  https://github.com/WoozyMasta/smsq/releases/latest/download/smsq-linux-amd64\nchmod +x /usr/bin/smsq\nsmsq -h \u0026\u0026 smsq -v\n```\n\n## Parameters\n\nThis help information is available when running the program\nwith the `--help` flag\n\n```bash\nsmsq --help\n```\n\n```txt\nUsage:\n  smsq [OPTIONS]\n  smsq -f appid=221100 -f map=namalsk -t -l 10\n\nSteam Master-Server Query CLI.\n\nApplication Options:\n  -k, --api-key=      Steam Web API key [$STEAM_API_KEY]\n  -f, --filter=       Filter: key=value (repeatable)\n  -x, --nor=          NOR filter: key=value (repeatable)\n  -X, --nand=         NAND filter: key=value (repeatable)\n  -l, --limit=        Max servers to fetch (Steam API limit 10 000) (default: 100)\n  -p, --pretty        Pretty‑print JSON\n  -t, --table         Print result as table\n  -c, --column-width= Max width for NAME column when --table is used (default: 64)\n  -v, --version       Show build info and exit\n  -h, --help          Show help message\n\nFilter keys:\n  white                1 — Whitelist on, 0 — off\n  gametype             sv_tags entry, e.g. \"battleye\"\n  dedicated            1 — Dedicated servers, 0 — Non-dedicated\n  password             1 — Password protected, 0 — Open\n  gameaddr             Exact IP[:port], e.g. \"192.168.1.1:27015\"\n  empty                1 — Not empty, 0 — Empty\n  proxy                1 — Proxy servers, 0 — Normal servers\n  collapse_addr_hash   1 — One server per IP, 0 — many\n  gamedata             Hidden gamedata tag, e.g. \"tag1\"\n  version_match        Wildcard version, e.g. \"1.3.*\"\n  secure               1 — VAC/BattleEye, 0 — Insecure\n  gamedir              Game dir, e.g. \"tf\", \"cstrike\", \"dayz\"\n  map                  Map name, e.g. \"ctf_2fort\"\n  linux                1 — Linux host, 0 — Other OS\n  appid                Exact AppID, e.g. 221100\n  name_match           Wildcard name, e.g. \"*server*\"\n  full                 1 — Not full, 0 — Full\n  napp                 Exclude AppID\n  noplayers            1 — Zero players, 0 — One or more players\n```\n\n## Example usage\n\n```bash\nsmsq -k \u003cAPI_KEY\u003e -f appid=221100 -l 5 -t\n```\n\n```txt\n#   ADDR                   NAME                                      MAP             PRODUCT   VERSION       PLAYERS\n1   212.124.22.212:27010   Test Development Server 1 chernarusplus   chernarusplus   dayz      1.28.160123   0/5\n2   212.124.22.212:27012   Test Development Server 3 sakhal          sakhal          dayz      1.28.160123   0/5\n3   94.181.44.83:27016     DAYZ 323                                  chernarusplus   dayz      1.28.160123   0/60\n4   95.79.97.108:27016     lyskovo                                   chernarusplus   dayz      1.28.160123   0/64\n5   193.238.44.61:2803     [FXT] FOXTROT DeathMatch [1PP] S          enoch           dayz      1.28.160123   0/10\n```\n\nMore examples\n\n```bash\n# Query DayZ servers with a table view (limit 5), pass token in option\nsmsq -k \u003cAPI_KEY\u003e -f appid=221100 -t\n# Query DayZ servers with a table view (limit 5), pass token in variable\nSTEAM_API_KEY=key smsq -f appid=221100 -f map=namalsk -t -l 5\n# Export token\nexport STEAM_API_KEY=key\n# Filter with jq to show only servers with players\nsmsq -f appid=221100 | jq '.[] | select(.players \u003e 0) | .name'\n# Show address, map, and player count\nsmsq -f appid=221100 | jq -r '.[] | \"\\(.addr) | \\(.map) | \\(.players)/\\(.max_players)\"'\n```\n\n## Support me 💖\n\nIf you enjoy my projects and want to support further development,\nfeel free to donate! Every contribution helps to keep the work going.\nThank you!\n\n### Crypto Donations\n\n\u003c!-- cSpell:disable --\u003e\n* **BTC**: `1Jb6vZAMVLQ9wwkyZfx2XgL5cjPfJ8UU3c`\n* **USDT (TRC20)**: `TN99xawQTZKraRyvPAwMT4UfoS57hdH8Kz`\n* **TON**: `UQBB5D7cL5EW3rHM_44rur9RDMz_fvg222R4dFiCAzBO_ptH`\n\u003c!-- cSpell:enable --\u003e\n\n\u003c!-- Links --\u003e\n\n[Steam Master Server]: https://developer.valvesoftware.com/wiki/Master_Server_Query_Protocol\n[Steam API Key]: https://steamcommunity.com/dev/apikey\n[MacOS arm64]: https://github.com/WoozyMasta/smsq/releases/latest/download/smsq-darwin-arm64 \"MacOS arm64 file\"\n[MacOS amd64]: https://github.com/WoozyMasta/smsq/releases/latest/download/smsq-darwin-amd64 \"MacOS amd64 file\"\n[Linux i386]: https://github.com/WoozyMasta/smsq/releases/latest/download/smsq-linux-386 \"Linux i386 file\"\n[Linux amd64]: https://github.com/WoozyMasta/smsq/releases/latest/download/smsq-linux-amd64 \"Linux amd64 file\"\n[Linux arm]: https://github.com/WoozyMasta/smsq/releases/latest/download/smsq-linux-arm \"Linux arm file\"\n[Linux arm64]: https://github.com/WoozyMasta/smsq/releases/latest/download/smsq-linux-arm64 \"Linux arm64 file\"\n[Windows i386]: https://github.com/WoozyMasta/smsq/releases/latest/download/smsq-windows-386.exe \"Windows i386 file\"\n[Windows amd64]: https://github.com/WoozyMasta/smsq/releases/latest/download/smsq-windows-amd64.exe \"Windows amd64 file\"\n[Windows arm64]: https://github.com/WoozyMasta/smsq/releases/latest/download/smsq-windows-arm64.exe \"Windows arm64 file\"\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwoozymasta%2Fsmsq","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwoozymasta%2Fsmsq","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwoozymasta%2Fsmsq/lists"}