kick-sim-linux-x64 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +164 -0
- package/bin/kick-sim +0 -0
- package/package.json +34 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Ege Kocabas
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
# kick-sim
|
|
2
|
+
|
|
3
|
+
[](https://github.com/egekocabas/kick-sim/actions/workflows/ci.yml)
|
|
4
|
+
[](https://github.com/egekocabas/kick-sim/releases)
|
|
5
|
+
[](LICENSE)
|
|
6
|
+
|
|
7
|
+
An unofficial, local-only simulator for building and testing [Kick](https://kick.com/) webhook integrations without OAuth, live subscriptions, or requests to Kick.
|
|
8
|
+
|
|
9
|
+
> [!IMPORTANT]
|
|
10
|
+
> Kick Sim is a pre-1.0 development tool. It is not affiliated with, endorsed by, or operated by Kick. Simulator signatures must never be trusted in production.
|
|
11
|
+
|
|
12
|
+

|
|
13
|
+
|
|
14
|
+
## What it does
|
|
15
|
+
|
|
16
|
+
- Generates schema-validated Kick webhook payloads from reviewed, versioned contracts.
|
|
17
|
+
- Signs the exact request body with a workspace-local RSA key.
|
|
18
|
+
- Delivers only to loopback HTTP(S) receivers and refuses redirects.
|
|
19
|
+
- Runs reusable single-event scenarios, timelines, and assertion suites.
|
|
20
|
+
- Retains bounded local delivery history for inspection and deterministic replay.
|
|
21
|
+
- Provides a CLI for scripts and CI plus an embedded browser-based Studio.
|
|
22
|
+
- Never contacts Kick or exposes the simulator private key to the browser.
|
|
23
|
+
|
|
24
|
+
Bundled contracts currently cover `channel.followed`, `chat.message.sent`, `livestream.status.updated`, and `moderation.banned` version 1 events.
|
|
25
|
+
|
|
26
|
+
## Install
|
|
27
|
+
|
|
28
|
+
Install the same embedded-Studio binary published on the [Releases page](https://github.com/egekocabas/kick-sim/releases) through a package manager:
|
|
29
|
+
|
|
30
|
+
```sh
|
|
31
|
+
# npm, on macOS or Linux (amd64/arm64) and Windows (amd64)
|
|
32
|
+
npm install --global kick-sim
|
|
33
|
+
|
|
34
|
+
# Homebrew, on macOS or Linux (amd64/arm64)
|
|
35
|
+
brew install --cask egekocabas/tap/kick-sim
|
|
36
|
+
|
|
37
|
+
# Scoop, on Windows (amd64)
|
|
38
|
+
scoop bucket add egekocabas https://github.com/egekocabas/scoop-bucket
|
|
39
|
+
scoop install kick-sim
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
The npm package requires Node.js 22.14 or newer to launch the native executable. It has no install scripts and downloads only the package matching the host operating system and architecture. You can also run it without a global install using `npx kick-sim`.
|
|
43
|
+
|
|
44
|
+
Prebuilt archives remain available for macOS and Linux (`amd64`, `arm64`) and Windows (`amd64`). Verify an archive against `checksums.txt`, extract it, and place `kick-sim` on your `PATH`.
|
|
45
|
+
|
|
46
|
+
Plain tags such as `v0.5.0` are published on the default package-manager channels even before 1.0. Release candidates use npm's `next` channel (`npx kick-sim@next`) and are not published to Homebrew or Scoop.
|
|
47
|
+
|
|
48
|
+
To build the embedded Studio from source, install:
|
|
49
|
+
|
|
50
|
+
- Go 1.26.6
|
|
51
|
+
- Node.js 24.19.0
|
|
52
|
+
- npm 11.17.0
|
|
53
|
+
|
|
54
|
+
```sh
|
|
55
|
+
git clone https://github.com/egekocabas/kick-sim.git
|
|
56
|
+
cd kick-sim
|
|
57
|
+
npm ci --prefix web
|
|
58
|
+
make build
|
|
59
|
+
./dist/kick-sim --help
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Use `./dist/kick-sim` in place of `kick-sim` in the examples below when running the source-built binary directly.
|
|
63
|
+
|
|
64
|
+
## Quick start
|
|
65
|
+
|
|
66
|
+
Create a local workspace in the current project:
|
|
67
|
+
|
|
68
|
+
```sh
|
|
69
|
+
kick-sim init
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
The generated configuration targets `http://127.0.0.1:3000/webhooks/kick`. When working from this repository, start the bundled verifying receiver in one terminal:
|
|
73
|
+
|
|
74
|
+
```sh
|
|
75
|
+
go run ./examples/receiver
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Send it a signed built-in scenario from another terminal:
|
|
79
|
+
|
|
80
|
+
```sh
|
|
81
|
+
kick-sim scenario run builtin:chat/basic-message \
|
|
82
|
+
--content "Hello from Kick Sim"
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Then open the local Studio:
|
|
86
|
+
|
|
87
|
+
```sh
|
|
88
|
+
kick-sim studio
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Studio listens on `127.0.0.1:4321`, opens your browser, and uses the same filesystem workspace and delivery history as the CLI.
|
|
92
|
+
|
|
93
|
+
## Common workflows
|
|
94
|
+
|
|
95
|
+
```sh
|
|
96
|
+
# Inspect the supported contracts and their upstream provenance.
|
|
97
|
+
kick-sim compatibility
|
|
98
|
+
kick-sim event list
|
|
99
|
+
|
|
100
|
+
# Generate JSON without delivering it.
|
|
101
|
+
kick-sim event generate chat.message.sent --content "Preview me"
|
|
102
|
+
|
|
103
|
+
# Validate authored definitions before running them.
|
|
104
|
+
kick-sim scenario validate builtin:workflows/complete-stream-session
|
|
105
|
+
kick-sim suite validate builtin:security
|
|
106
|
+
|
|
107
|
+
# Run a deterministic timeline or assertion suite.
|
|
108
|
+
kick-sim scenario run builtin:workflows/complete-stream-session
|
|
109
|
+
kick-sim suite run builtin:delivery
|
|
110
|
+
|
|
111
|
+
# Use stable machine-readable output in automation.
|
|
112
|
+
kick-sim --output json scenario list
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Run `kick-sim <command> --help` for the complete command surface.
|
|
116
|
+
|
|
117
|
+
## Safety model
|
|
118
|
+
|
|
119
|
+
Kick Sim is deliberately constrained to local development:
|
|
120
|
+
|
|
121
|
+
- Studio accepts only explicit loopback listener addresses and exact host/origin checks.
|
|
122
|
+
- Webhook destinations must resolve to loopback addresses; redirects and URL credentials are rejected.
|
|
123
|
+
- Each workspace owns a simulator-only key pair. The private key remains on disk with restrictive permissions where supported.
|
|
124
|
+
- Mutating Studio API requests require a random per-process control token.
|
|
125
|
+
- Runtime history is bounded and stored separately from authored scenarios and suites.
|
|
126
|
+
|
|
127
|
+
See [SECURITY.md](SECURITY.md) for trust boundaries, data handling, and vulnerability reporting.
|
|
128
|
+
|
|
129
|
+
## Repository layout
|
|
130
|
+
|
|
131
|
+
```text
|
|
132
|
+
cmd/kick-sim/ CLI entrypoint
|
|
133
|
+
internal/app/ event generation, delivery, replay, and history orchestration
|
|
134
|
+
internal/events/ bundled contract registry, payload composition, and validation
|
|
135
|
+
internal/scenario/ authored scenarios and timeline definitions
|
|
136
|
+
internal/suite/ assertion suites
|
|
137
|
+
internal/studio/ loopback-only HTTP API and embedded Studio server
|
|
138
|
+
assets/ embedded contracts, scenarios, suites, and compatibility metadata
|
|
139
|
+
web/ React Studio and generated OpenAPI client
|
|
140
|
+
examples/receiver/ minimal signature-verifying webhook receiver
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
The filesystem remains the source of truth for authored data. Generated OpenAPI artifacts are committed and checked for drift in CI.
|
|
144
|
+
See [Architecture](docs/architecture.md) for dependency direction, orchestration boundaries, and the safety-critical storage and delivery flows.
|
|
145
|
+
|
|
146
|
+
## Contracts and documentation
|
|
147
|
+
|
|
148
|
+
- [CLI contract](docs/cli-contract.md)
|
|
149
|
+
- [Architecture](docs/architecture.md)
|
|
150
|
+
- [Workspace and authored-format contract](docs/workspace-contract.md)
|
|
151
|
+
- [Compatibility and provenance](docs/compatibility.md)
|
|
152
|
+
- [Security model](SECURITY.md)
|
|
153
|
+
- [Release and package publishing](docs/releasing.md)
|
|
154
|
+
- [Committed Studio OpenAPI document](web/openapi.json)
|
|
155
|
+
|
|
156
|
+
## Project status
|
|
157
|
+
|
|
158
|
+
The public CLI, JSON output, Studio API, workspace format, and authored scenario formats are versioned compatibility surfaces. The project is still pre-1.0, and releases may add new commands, fields, events, and capabilities while retaining the documented contracts.
|
|
159
|
+
|
|
160
|
+
This repository is currently published as a showcase and reference implementation. Bug reports are welcome, but unsolicited pull requests are not being accepted at this time. Please use private vulnerability reporting for security issues.
|
|
161
|
+
|
|
162
|
+
## License
|
|
163
|
+
|
|
164
|
+
[MIT](LICENSE) © 2026 Ege Kocabas.
|
package/bin/kick-sim
ADDED
|
Binary file
|
package/package.json
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "kick-sim-linux-x64",
|
|
3
|
+
"version": "0.4.1",
|
|
4
|
+
"description": "Local-only simulator for building and testing Kick webhook integrations",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"author": "Ege Kocabas",
|
|
7
|
+
"homepage": "https://github.com/egekocabas/kick-sim",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/egekocabas/kick-sim.git"
|
|
11
|
+
},
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/egekocabas/kick-sim/issues"
|
|
14
|
+
},
|
|
15
|
+
"keywords": [
|
|
16
|
+
"kick",
|
|
17
|
+
"webhook",
|
|
18
|
+
"simulator",
|
|
19
|
+
"cli",
|
|
20
|
+
"testing"
|
|
21
|
+
],
|
|
22
|
+
"publishConfig": {
|
|
23
|
+
"access": "public"
|
|
24
|
+
},
|
|
25
|
+
"os": [
|
|
26
|
+
"linux"
|
|
27
|
+
],
|
|
28
|
+
"cpu": [
|
|
29
|
+
"x64"
|
|
30
|
+
],
|
|
31
|
+
"files": [
|
|
32
|
+
"bin"
|
|
33
|
+
]
|
|
34
|
+
}
|