{"adoption": {"forks": 148, "observed_at": "2026-08-28T04:04:54.714690+00:00", "stars": 1504}, "canonical_url": "https://ross.abutalabs.com/products/shell2http", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Executing shell commands via HTTP server", "domain": ["developer-tools", "web-development"], "enriched": true, "function": ["http-server", "cli"], "health_score": 84, "homepage": null, "language": "Go", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["msoap/shell2http"], "name": "msoap/shell2http", "platform": ["windows", "go", "cross-platform"], "pushed_at": "2026-08-08T14:36:02+00:00", "repo": "msoap/shell2http", "stars": 1504, "tags": ["shell-commands", "http-api", "remote-control", "prototyping", "cgi", "command-line", "automation", "linux", "macos", "docker"], "topics": ["golang", "cli", "http", "server", "proxy", "shell", "docker", "bash"], "urls": [], "use_cases": ["expose shell scripts as http endpoints", "turn bash commands into a rest api for prototyping", "remotely trigger shell commands on a server", "quickly mock an api backed by shell scripts", "run system commands from a webhook", "build a tiny dev tool server without writing code"], "what_it_is": "shell2http is a lightweight Go CLI tool that runs an HTTP server where each URL path is mapped to a shell command, returning the command's stdout as the HTTP response. It supports form parsing, CGI mode, caching, and environment variable export, making it easy to expose shell scripts over HTTP.", "when_to_avoid": ["you need authentication, TLS, or fine-grained security controls for production", "you need complex request routing, middleware, or JSON request handling", "exposing arbitrary shell commands publicly is a security risk", "you need a full application framework rather than a simple command bridge"], "when_to_choose": ["you need to expose shell commands over http with minimal setup", "prototyping or development where a quick http wrapper for scripts is enough", "remote control of a machine via simple http calls", "you want a single static binary or docker image with no dependencies"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/shell2http", "repo": "msoap/shell2http", "role": "main", "score": 66}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.714690+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:32:46.078757+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5a6f843c2f9f7382397b6b4909ba4cb1b3d6e37c03d4bdd2ad097aa9e4c996b4", "fetched_at": "2026-08-28T04:04:54.714690+00:00", "kind": "readme", "missing": false, "url": "https://github.com/msoap/shell2http"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.714690+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:32:46.078757+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5a6f843c2f9f7382397b6b4909ba4cb1b3d6e37c03d4bdd2ad097aa9e4c996b4", "fetched_at": "2026-08-28T04:04:54.714690+00:00", "kind": "readme", "missing": false, "url": "https://github.com/msoap/shell2http"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:32:46.078757+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5a6f843c2f9f7382397b6b4909ba4cb1b3d6e37c03d4bdd2ad097aa9e4c996b4", "fetched_at": "2026-08-28T04:04:54.714690+00:00", "kind": "readme", "missing": false, "url": "https://github.com/msoap/shell2http"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.714690+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.714690+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.714690+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:32:46.078757+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5a6f843c2f9f7382397b6b4909ba4cb1b3d6e37c03d4bdd2ad097aa9e4c996b4", "fetched_at": "2026-08-28T04:04:54.714690+00:00", "kind": "readme", "missing": false, "url": "https://github.com/msoap/shell2http"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.714690+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.714690+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:32:46.078757+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5a6f843c2f9f7382397b6b4909ba4cb1b3d6e37c03d4bdd2ad097aa9e4c996b4", "fetched_at": "2026-08-28T04:04:54.714690+00:00", "kind": "readme", "missing": false, "url": "https://github.com/msoap/shell2http"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.714690+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.714690+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.714690+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:32:46.078757+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5a6f843c2f9f7382397b6b4909ba4cb1b3d6e37c03d4bdd2ad097aa9e4c996b4", "fetched_at": "2026-08-28T04:04:54.714690+00:00", "kind": "readme", "missing": false, "url": "https://github.com/msoap/shell2http"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.714690+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.714690+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:32:46.078757+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5a6f843c2f9f7382397b6b4909ba4cb1b3d6e37c03d4bdd2ad097aa9e4c996b4", "fetched_at": "2026-08-28T04:04:54.714690+00:00", "kind": "readme", "missing": false, "url": "https://github.com/msoap/shell2http"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:32:46.078757+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5a6f843c2f9f7382397b6b4909ba4cb1b3d6e37c03d4bdd2ad097aa9e4c996b4", "fetched_at": "2026-08-28T04:04:54.714690+00:00", "kind": "readme", "missing": false, "url": "https://github.com/msoap/shell2http"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:32:46.078757+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5a6f843c2f9f7382397b6b4909ba4cb1b3d6e37c03d4bdd2ad097aa9e4c996b4", "fetched_at": "2026-08-28T04:04:54.714690+00:00", "kind": "readme", "missing": false, "url": "https://github.com/msoap/shell2http"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:32:46.078757+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5a6f843c2f9f7382397b6b4909ba4cb1b3d6e37c03d4bdd2ad097aa9e4c996b4", "fetched_at": "2026-08-28T04:04:54.714690+00:00", "kind": "readme", "missing": false, "url": "https://github.com/msoap/shell2http"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 96, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4193, "days_push": 25, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 66, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}