{"id":46055759,"url":"https://github.com/localstack/lstk","last_synced_at":"2026-05-07T12:02:26.030Z","repository":{"id":335277956,"uuid":"1143334475","full_name":"localstack/lstk","owner":"localstack","description":" 👾 lstk is a command-line interface for LocalStack built in Go with a modern terminal Ul, and native CLI experience for managing and interacting with LocalStack deployments.","archived":false,"fork":false,"pushed_at":"2026-05-04T15:41:46.000Z","size":2705,"stargazers_count":20,"open_issues_count":8,"forks_count":5,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-04T17:05:27.329Z","etag":null,"topics":["cli","developer-tools","local-development","localstack"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/localstack.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-01-27T13:04:48.000Z","updated_at":"2026-05-04T15:02:27.000Z","dependencies_parsed_at":null,"dependency_job_id":"f9a1b97d-23e3-458d-be6b-e44750edde84","html_url":"https://github.com/localstack/lstk","commit_stats":null,"previous_names":["localstack/lstk"],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/localstack/lstk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/localstack%2Flstk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/localstack%2Flstk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/localstack%2Flstk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/localstack%2Flstk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/localstack","download_url":"https://codeload.github.com/localstack/lstk/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/localstack%2Flstk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32736582,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-07T02:14:30.463Z","status":"ssl_error","status_checked_at":"2026-05-07T02:14:29.405Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["cli","developer-tools","local-development","localstack"],"created_at":"2026-03-01T10:02:28.376Z","updated_at":"2026-05-07T12:02:26.017Z","avatar_url":"https://github.com/localstack.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# lstk\n\n**A command-line interface for LocalStack**. Built in Go with a modern terminal UI and native CLI experience for managing and interacting with LocalStack deployments. 👾\n\n\n```bash\nnpm install -g @localstack/lstk\n```\n\nSee [installation](#installation) below.\n\n\u003e [!IMPORTANT]\n\u003e This project is under active development, currently using [ZeroVer](https://0ver.org/) (`0.MINOR.PATCH`). Expect breaking changes as we march toward a stable 1.0.0 release.\n\n\n## Prerequisites\n\n- [Docker](https://docs.docker.com/get-docker/) — required as a container engine.\n- [LocalStack account](https://app.localstack.cloud) — required for credentials, the CLI will guide you through authentication.\n\n## Installation\n\n### 1. Homebrew (macOS / Linux)\n\n```bash\nbrew install localstack/tap/lstk\n```\n\n### 2. NPM\n\n```bash\nnpm install -g @localstack/lstk\n```\n\n### 3. Binaries\nPre-built binaries are also available from [GitHub Releases](https://github.com/localstack/lstk/releases). 📦\n\n## Quick Start\n\n```sh\nlstk\n```\n\nRunning `lstk` will automatically handle configuration setup and start LocalStack.\n\n## Features\n\n- **Start / stop / status** — manage LocalStack emulators with a single command\n- **Interactive TUI** — a Bubble Tea-powered terminal UI shown in an interactive terminal for commands like `start`, `login`, `status`, etc.\n- **Plain output** for CI/CD and scripting (auto-detected in non-interactive environments or forced with `--non-interactive`)\n- **Log streaming** — tail emulator logs in real-time with `--follow`; use `--verbose` to show all logs without filtering\n- **Browser-based login** — authenticate via browser and store credentials securely in the system keyring\n- **AWS CLI profile** — optionally configure a `localstack` profile in `~/.aws/` after start\n- **Self-update** — check for and install the latest `lstk` release with `lstk update`\n- **Shell completions** — bash, zsh, and fish completions included\n\n## Authentication\n\nThe CLI supports multiple auth workflows. `lstk` resolves your auth token in this order:\n\n1. **System keyring** — a token stored by a previous `lstk login`\n2. **`LOCALSTACK_AUTH_TOKEN` environment variable**\n3. **Browser login** — triggered automatically in interactive mode when neither of the above is present\n\n\u003e [!NOTE]\n\u003e If a keyring token exists, it takes precedence over `LOCALSTACK_AUTH_TOKEN`. Setting or changing the environment variable will have no effect until the keyring token is removed. Run `lstk logout` to clear the stored keyring token, after which the env var will be used.\n\n\n## Configuration\n\n`lstk` uses a TOML config file, created automatically on first run.\n\n`lstk` uses the first `config.toml` found in this order:\n1. `./.lstk/config.toml` (project-local)\n2. `$HOME/.config/lstk/config.toml`\n3. **macOS**: `$HOME/Library/Application Support/lstk/config.toml` / **Windows**: `%AppData%\\lstk\\config.toml`\n\nOn first run, the config is created at `$HOME/.config/lstk/config.toml` if `$HOME/.config/` already exists, otherwise at the OS default (#3). This means #3 is only reached on macOS when `$HOME/.config/` didn't exist at first run.\n\nTo see which config file is currently in use:\n\n```bash\nlstk config path\n```\n\nYou can also configure AWS CLI integration:\n\n```bash\nlstk setup aws\n```\n\nThis sets up a `localstack` profile in `~/.aws/config` and `~/.aws/credentials`.\n\nYou can also point `lstk` at a specific config file for any command:\n\n```bash\nlstk --config /path/to/config.toml start\n```\n\n### Default config\n\n```toml\n[[containers]]\ntype = \"aws\"     # Emulator type. Currently supported: \"aws\"\ntag  = \"latest\"  # Docker image tag, e.g. \"latest\", \"2026.03\"\nport = \"4566\"    # Host port the emulator will be accessible on\n# volume = \"\"    # Host directory for persistent state (default: OS cache dir)\n# env = []       # Named environment profiles to apply (see [env.*] sections below)\n```\n\n**Fields:**\n- `type`: emulator type; only `\"aws\"` is supported for now\n- `tag`: Docker image tag for LocalStack (e.g. `\"latest\"`, `\"4.14.0\"`); useful for pinning a version\n- `port`: port LocalStack listens on (default `4566`)\n- `volume`: (optional) host directory for persistent emulator state (default: OS cache dir)\n- `env`: (optional) list of named environment variable groups to inject into the container (see below)\n\n### Passing environment variables to the container\n\nDefine reusable named env sets and reference them per container:\n\n```toml\n[[containers]]\ntype = \"aws\"\ntag  = \"latest\"\nport = \"4566\"\nenv  = [\"debug\", \"ci\"]\n\n[env.debug]\nDEBUG = \"1\"\nENFORCE_IAM = \"1\"\nPERSISTENCE = \"1\"\n\n[env.ci]\nSERVICES = \"s3,sqs\"\nEAGER_SERVICE_LOADING = \"1\"\n```\n\n## Interactive And Non-Interactive Mode\n\n`lstk` uses the TUI in an interactive terminal and plain output elsewhere. Use `--non-interactive` to force plain output even in a TTY:\n\n```bash\nlstk --non-interactive\n```\n\n## Logging\n\n`lstk` writes diagnostic logs to `lstk.log` in the same directory as the config file. The log file appends across runs and is automatically cleared when it exceeds 1 MB. Use `lstk config path` to print the full config file path; the log file lives alongside it in the same directory.\n\n## Environment Variables\n\n| Variable | Description |\n|---|---|\n| `LOCALSTACK_AUTH_TOKEN` | Auth token used for non-interactive runs or to skip browser login |\n| `LOCALSTACK_DISABLE_EVENTS=1` | Disables telemetry event reporting |\n| `LSTK_OTEL=1` | Enables OpenTelemetry trace export (disabled by default). When enabled, standard `OTEL_EXPORTER_OTLP_*` env vars are respected by the SDK (e.g. `OTEL_EXPORTER_OTLP_ENDPOINT` defaults to `http://localhost:4318`). Requires an OTLP-compatible backend to receive and visualize telemetry — for local development, `make otel` starts one (UI at http://localhost:16686). |\n| `DOCKER_HOST` | Override the Docker daemon socket (e.g. `unix:///home/user/.colima/default/docker.sock`). When unset, lstk tries the default socket and then probes common alternatives (Colima, OrbStack). |\n\n## Usage\n\n```bash\n# Start the LocalStack emulator\nlstk\n\n# Start non-interactively (e.g. in CI)\nLOCALSTACK_AUTH_TOKEN=\u003ctoken\u003e lstk --non-interactive\n\n# Stop the running emulator\nlstk stop\n\n# Show emulator status and deployed resources\nlstk status\n\n# Stream emulator logs\nlstk logs --follow\n\n# Stream all emulator logs without filtering\nlstk logs --follow --verbose\n\n# Log in (opens browser for authentication)\nlstk login\n\n# Log out (removes stored credentials)\nlstk logout\n\n# Check whether a newer lstk version is available\nlstk update --check\n\n# Update lstk to the latest version\nlstk update\n\n# Show resolved config file path\nlstk config path\n\n# Set up AWS CLI profile integration\nlstk setup aws\n\n```\n\n## Reporting bugs\n\nFeedback is welcome! Use the repository issue tracker for bug reports or feature requests.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flocalstack%2Flstk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flocalstack%2Flstk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flocalstack%2Flstk/lists"}