roundtable-sh 0.1.1__tar.gz

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.
@@ -0,0 +1,19 @@
1
+ {
2
+ "name": "frontier-infra",
3
+ "owner": {
4
+ "name": "Frontier Infra",
5
+ "url": "https://frontierinfra.org"
6
+ },
7
+ "description": "Frontier Infra plugins for Claude Code.",
8
+ "plugins": [
9
+ {
10
+ "name": "roundtable",
11
+ "source": "./",
12
+ "description": "Ask a council of AI models one question and get one decision back. Bundles the roundtable command, a skill, and an MCP tool.",
13
+ "version": "0.1.1",
14
+ "homepage": "https://roundtable.sh",
15
+ "license": "MIT",
16
+ "keywords": ["roundtable", "council", "consensus", "multi-model", "deliberation", "ai"]
17
+ }
18
+ ]
19
+ }
@@ -0,0 +1,53 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
3
+ "name": "roundtable",
4
+ "displayName": "Roundtable",
5
+ "version": "0.1.1",
6
+ "description": "Ask a council of AI models (Claude, OpenAI, Gemini, Grok, GLM, MiniMax) one question and get one decision back. Includes the roundtable command, a skill, and an MCP tool. Nothing else to install.",
7
+ "author": {
8
+ "name": "Frontier Infra",
9
+ "url": "https://frontierinfra.org"
10
+ },
11
+ "homepage": "https://roundtable.sh",
12
+ "repository": "https://github.com/frontier-infra/roundtable",
13
+ "license": "MIT",
14
+ "keywords": ["roundtable", "council", "consensus", "multi-model", "deliberation", "ai"],
15
+ "mcpServers": {
16
+ "roundtable": {
17
+ "command": "${CLAUDE_PLUGIN_ROOT}/bin/roundtable",
18
+ "args": ["mcp", "serve"],
19
+ "env": {
20
+ "ANTHROPIC_API_KEY": "${user_config.anthropic_api_key}",
21
+ "OPENAI_API_KEY": "${user_config.openai_api_key}",
22
+ "GEMINI_API_KEY": "${user_config.gemini_api_key}",
23
+ "XAI_API_KEY": "${user_config.xai_api_key}"
24
+ }
25
+ }
26
+ },
27
+ "userConfig": {
28
+ "anthropic_api_key": {
29
+ "type": "string",
30
+ "title": "Anthropic API key (optional)",
31
+ "description": "Adds the Claude head and the chair that calls consensus. Leave blank to skip.",
32
+ "sensitive": true
33
+ },
34
+ "openai_api_key": {
35
+ "type": "string",
36
+ "title": "OpenAI API key (optional)",
37
+ "description": "Adds the OpenAI head. Leave blank to skip.",
38
+ "sensitive": true
39
+ },
40
+ "gemini_api_key": {
41
+ "type": "string",
42
+ "title": "Gemini API key (optional)",
43
+ "description": "Adds the Gemini head. Leave blank to skip.",
44
+ "sensitive": true
45
+ },
46
+ "xai_api_key": {
47
+ "type": "string",
48
+ "title": "xAI API key (optional)",
49
+ "description": "Adds the Grok head. Leave blank to skip.",
50
+ "sensitive": true
51
+ }
52
+ }
53
+ }
@@ -0,0 +1,15 @@
1
+ # Roundtable tool repo
2
+ *.log
3
+ .DS_Store
4
+ __pycache__/
5
+ *.pyc
6
+ .venv/
7
+ venv/
8
+ dist/
9
+ build/
10
+ *.egg-info/
11
+ # never commit user secrets / local config
12
+ config.env
13
+ .api_keys
14
+ # orchestration/session tooling state (not project files)
15
+ .omx/
@@ -0,0 +1,172 @@
1
+ # AGENTS.md โ€” Roundtable
2
+
3
+ A guide for coding agents (and the humans wiring them up). Roundtable is a CLI + MCP
4
+ server that convenes a **council of frontier models** on a question and, optionally,
5
+ runs a **chaired deliberation to consensus**. It's a [Frontier Infra](https://frontierinfra.org)
6
+ project โ€” we eat our own cooking: our own agents call Roundtable before the decisions
7
+ that matter.
8
+
9
+ ## What it is
10
+
11
+ One command, several model "heads", run in parallel:
12
+
13
+ - **Advisory** (default) โ€” every configured head answers once, blind to the others.
14
+ - **Deliberation** (`--rounds N`) โ€” heads read each other and revise; a Claude **chair**
15
+ declares `CONSENSUS` / `CONTINUE` and the run stops early on consensus.
16
+ - **Research** (`--research`) โ€” web on, multi-step, for answers that need current facts.
17
+
18
+ Heads: `grok` ยท `codex` ยท `openai` ยท `glm` ยท `minimax` ยท `claude` ยท `gemini`. A head with
19
+ no key/CLI is skipped inline โ€” the council runs on whatever subset is configured (so it
20
+ works on **API keys alone**, no local CLIs required).
21
+
22
+ ## Install
23
+
24
+ ### In Claude
25
+
26
+ Paste these two lines into Claude Code:
27
+
28
+ ```text
29
+ /plugin marketplace add frontier-infra/roundtable
30
+ /plugin install roundtable@frontier-infra
31
+ ```
32
+
33
+ That is all. The plugin brings the `roundtable` command, the Roundtable skill, and the
34
+ `roundtable` MCP tool. Claude Code then asks for your API keys. Every key is optional, and
35
+ any one key is enough to start. Run `/roundtable:setup` to see which models are ready.
36
+
37
+ ### Command line
38
+
39
+ ```bash
40
+ uv tool install roundtable-sh
41
+ ```
42
+
43
+ Other ways, one line each:
44
+
45
+ ```bash
46
+ pipx install roundtable-sh
47
+ pip install roundtable-sh
48
+ uv tool install git+https://github.com/frontier-infra/roundtable # works now, before the PyPI release
49
+ pipx install git+https://github.com/frontier-infra/roundtable # same, with pipx
50
+ ```
51
+
52
+ The package is `roundtable-sh`. The command is `roundtable`. The PyPI package named
53
+ `roundtable` is an unrelated project, so do not install it. Then run `roundtable auth` to
54
+ add your keys.
55
+
56
+ ### Or run our installer
57
+
58
+ ```bash
59
+ curl -fsSL https://roundtable.sh/install.sh | bash
60
+ ```
61
+
62
+ What it does:
63
+
64
+ - Checks that `bash`, `python3`, and `curl` are present.
65
+ - Downloads Roundtable from this GitHub repository into `~/.local/share/roundtable`.
66
+ - Links the `roundtable` command into `~/.local/bin`, and tells you if that folder is not
67
+ on your `PATH`.
68
+ - Offers to run `roundtable auth` and `roundtable install`. Both are optional.
69
+
70
+ It needs no `sudo` and changes nothing else. Read it first at
71
+ https://roundtable.sh/install.sh.
72
+
73
+ From a clone: `git clone https://github.com/frontier-infra/roundtable && cd roundtable && ./install.sh --from .`
74
+
75
+ ## Configure keys
76
+
77
+ ```bash
78
+ roundtable auth # interactive: masked paste per provider, shows โœ“/โœ—
79
+ roundtable auth anthropic # configure just one provider
80
+ roundtable doctor # which heads are configured + a reachability ping
81
+ ```
82
+
83
+ Keys live in `~/.config/roundtable/config.env` (dotenv, `chmod 600`, sourced โ€” no parser).
84
+ You can also write it directly:
85
+
86
+ ```bash
87
+ mkdir -p ~/.config/roundtable
88
+ cat > ~/.config/roundtable/config.env <<'EOF'
89
+ ANTHROPIC_API_KEY=sk-ant-...
90
+ OPENAI_API_KEY=sk-...
91
+ XAI_API_KEY=xai-...
92
+ ZAI_API_KEY=...
93
+ MINIMAX_API_KEY=...
94
+ GEMINI_API_KEY=...
95
+ EOF
96
+ chmod 600 ~/.config/roundtable/config.env
97
+ ```
98
+
99
+ Per-head model/enable overrides: `roundtable models` and `roundtable heads` (or edit
100
+ `config.env`; `roundtable config` shows/edits it).
101
+
102
+ ## Run
103
+
104
+ ```bash
105
+ roundtable "Should we use Postgres or SQLite for this service?" # shorthand
106
+ roundtable ask -q "..." --heads grok,claude,gemini # subset of heads
107
+ roundtable ask -q "..." --rounds 3 # deliberate to consensus
108
+ roundtable ask -q "..." -c ./context.md # shared background for every head
109
+ roundtable ask -q "..." --research # web on
110
+ roundtable ask -q "..." --out /tmp/rt.md # also save the transcript
111
+ ```
112
+
113
+ Flags: `-q/--question`, `-c/--context <file>`, `--heads ...`, `--rounds N`, `--research`,
114
+ `--timeout <secs>`, `--out <file>`. Exit 0 if โ‰ฅ1 head answered.
115
+
116
+ **Output discipline:** always return the per-head results table **and** the judge's
117
+ decision (chair verdict + your own moderator call). Never summarize without the table.
118
+
119
+ ## Use as MCP / wire into your harness
120
+
121
+ Roundtable ships an MCP server as a subcommand of the one binary:
122
+
123
+ ```bash
124
+ roundtable mcp serve # stdio JSON-RPC; one tool: roundtable(question, heads?, rounds?, research?)
125
+ roundtable mcp config # prints the server JSON block to paste manually
126
+ ```
127
+
128
+ One line for Claude Code (needs the command line install):
129
+
130
+ ```bash
131
+ claude mcp add --scope user roundtable -- roundtable mcp serve
132
+ ```
133
+
134
+ Auto-wire detected harnesses (idempotent โ€” backs up first, never clobbers):
135
+
136
+ ```bash
137
+ roundtable install # detect + wire everything present
138
+ roundtable install --harness cursor,codex
139
+ roundtable install --all # non-interactive
140
+ ```
141
+
142
+ - **Claude Code** โ€” installs this skill into `~/.agents/skills/roundtable/` (and `~/.claude*` profiles) **and** registers the MCP server.
143
+ - **Cursor** โ€” `~/.cursor/mcp.json`.
144
+ - **Codex CLI** โ€” `~/.codex/config.toml` `[mcp_servers.roundtable]`.
145
+ - **generic** โ€” prints the MCP JSON to paste anywhere else.
146
+
147
+ The MCP server config any harness can use:
148
+
149
+ ```json
150
+ { "command": "roundtable", "args": ["mcp", "serve"] }
151
+ ```
152
+
153
+ ## Use in Claude Code (plugin)
154
+
155
+ ```text
156
+ /plugin marketplace add frontier-infra/roundtable
157
+ /plugin install roundtable@frontier-infra
158
+ ```
159
+
160
+ The plugin bundles everything: the `roundtable` command on the Bash tool's `PATH`, the
161
+ `roundtable` skill, `/roundtable:ask`, `/roundtable:setup`, and the `roundtable` MCP server.
162
+ No separate CLI install is needed. API keys entered in the plugin settings reach the MCP
163
+ server. The Bash command reads `~/.config/roundtable/config.env` instead.
164
+
165
+ ## Keep it current
166
+
167
+ `roundtable version` ยท `roundtable update` (prints the right upgrade command for how you installed).
168
+
169
+ ---
170
+
171
+ *Roundtable โ€” a Frontier Infra project. MIT. https://roundtable.sh ยท
172
+ https://github.com/frontier-infra/roundtable*
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Frontier Infra
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.
@@ -0,0 +1,251 @@
1
+ Metadata-Version: 2.5
2
+ Name: roundtable-sh
3
+ Version: 0.1.1
4
+ Summary: A council of frontier models โ€” for the decisions that matter. (a Frontier Infra project)
5
+ Project-URL: Homepage, https://roundtable.sh
6
+ Project-URL: Repository, https://github.com/frontier-infra/roundtable
7
+ Project-URL: Issues, https://github.com/frontier-infra/roundtable/issues
8
+ Author: Frontier Infra
9
+ License: MIT
10
+ License-File: LICENSE
11
+ Keywords: ai,claude,cli,council,deliberation,gemini,grok,llm,mcp,openai
12
+ Classifier: Development Status :: 4 - Beta
13
+ Classifier: Environment :: Console
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: License :: OSI Approved :: MIT License
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Topic :: Software Development :: Libraries
18
+ Classifier: Topic :: Utilities
19
+ Requires-Python: >=3.9
20
+ Description-Content-Type: text/markdown
21
+
22
+ <div align="center">
23
+
24
+ # ๐Ÿช‘ Roundtable
25
+
26
+ ### A council of frontier models โ€” for the decisions that matter.
27
+
28
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](./LICENSE)
29
+ [![A Frontier Infra project](https://img.shields.io/badge/Frontier_Infra-project-ff2e88)](https://frontierinfra.org)
30
+ [![Website](https://img.shields.io/badge/web-roundtable.sh-0b0a0f)](https://roundtable.sh)
31
+ [![CLI ยท MCP](https://img.shields.io/badge/CLI_ยท_MCP-any_harness-444)](#mcp--wire-into-your-harness)
32
+
33
+ **One question โ†’ many minds โ†’ one decision.**
34
+
35
+ Fan a question out to **Grok, Codex/OpenAI, GLM, MiniMax, Claude, and Gemini** in parallel,
36
+ optionally **deliberate to consensus** with a chaired vote, and get back one decided answer โ€”
37
+ from the command line or any MCP-capable coding harness.
38
+
39
+ </div>
40
+
41
+ ## Install
42
+
43
+ ### In Claude
44
+
45
+ Paste these two lines into Claude Code:
46
+
47
+ ```text
48
+ /plugin marketplace add frontier-infra/roundtable
49
+ /plugin install roundtable@frontier-infra
50
+ ```
51
+
52
+ That is all. The plugin brings the `roundtable` command, the Roundtable skill, and the
53
+ `roundtable` MCP tool. Claude Code then asks for your API keys. Every key is optional, and
54
+ any one key is enough to start. Run `/roundtable:setup` to see which models are ready.
55
+
56
+ ### Command line
57
+
58
+ ```bash
59
+ uv tool install roundtable-sh
60
+ ```
61
+
62
+ Other ways, one line each:
63
+
64
+ ```bash
65
+ pipx install roundtable-sh
66
+ pip install roundtable-sh
67
+ uv tool install git+https://github.com/frontier-infra/roundtable # works now, before the PyPI release
68
+ pipx install git+https://github.com/frontier-infra/roundtable # same, with pipx
69
+ ```
70
+
71
+ The package is `roundtable-sh`. The command is `roundtable`. The PyPI package named
72
+ `roundtable` is an unrelated project, so do not install it. Then run `roundtable auth` to
73
+ add your keys.
74
+
75
+ ### Or run our installer
76
+
77
+ ```bash
78
+ curl -fsSL https://roundtable.sh/install.sh | bash
79
+ ```
80
+
81
+ What it does:
82
+
83
+ - Checks that `bash`, `python3`, and `curl` are present.
84
+ - Downloads Roundtable from this GitHub repository into `~/.local/share/roundtable`.
85
+ - Links the `roundtable` command into `~/.local/bin`, and tells you if that folder is not
86
+ on your `PATH`.
87
+ - Offers to run `roundtable auth` and `roundtable install`. Both are optional.
88
+
89
+ It needs no `sudo` and changes nothing else. Read it first at
90
+ https://roundtable.sh/install.sh.
91
+
92
+ ---
93
+
94
+ ## Why Roundtable?
95
+
96
+ Every model has a blind spot it can't see. Right before an irreversible call โ€” an
97
+ architecture, a migration, a rewrite โ€” is exactly when one model's confident answer
98
+ deserves a second (and third, and fourth) opinion.
99
+
100
+ Roundtable convenes a **panel of frontier models**. Each answers independently; then, for
101
+ high-stakes calls, a **multi-round deliberation** lets every head read the whole table and
102
+ revise until a **Claude chair** declares `CONSENSUS` or names the remaining disagreement.
103
+ Disagreement is signal, not noise.
104
+
105
+ - **๐Ÿ—ณ๏ธ Advisory** *(default)* โ€” every head answers once, blind to the others. Raw, independent reads.
106
+ - **โš–๏ธ Deliberation** (`--rounds N`) โ€” heads see each other and revise; a neutral chair rules `CONSENSUS` / `CONTINUE` and stops early on agreement.
107
+ - **๐Ÿ”‘ API keys are enough** โ€” no local CLIs required. Missing heads are skipped; the council runs on whatever subset you've configured.
108
+ - **๐Ÿ“ฆ One package, everywhere:** a Claude Code plugin, a CLI, and an MCP server from the same code.
109
+
110
+ ## Example
111
+
112
+ ```text
113
+ $ roundtable "Reply with exactly: OK three words" --heads claude,gemini
114
+
115
+ # ๐Ÿช‘ Round Table โ€” 2 heads โ€” advisory
116
+ ## ๐Ÿ”ต Claude (claude-opus-4-8, Anthropic) โ†’ OK three words
117
+ ## โœจ Gemini (gemini-3.1-pro-preview, Google) โ†’ OK three words
118
+ ```
119
+
120
+ Add `--rounds 3` and the heads deliberate; a chair prints `VERDICT: CONSENSUS` (or
121
+ `CONTINUE`) with the points they agreed on and any dissent named.
122
+
123
+ ## Quickstart
124
+
125
+ ```bash
126
+ # 1. Configure keys (masked prompts; shows which heads are โœ“/โœ—). Stored chmod-600
127
+ # in ~/.config/roundtable/config.env. Any subset works โ€” missing heads are skipped.
128
+ roundtable auth
129
+
130
+ # 2. Ask the council
131
+ roundtable "Postgres or SQLite for a single-tenant internal tool?"
132
+
133
+ # 3. Deliberate to consensus on a high-stakes call
134
+ roundtable ask -q "Should we rewrite the billing service in Go?" --rounds 3
135
+ ```
136
+
137
+ `roundtable doctor` shows which heads are configured and pings each for reachability.
138
+
139
+ ### Flags
140
+
141
+ `-q/--question` ยท `-c/--context <file>` (shared background for every head) ยท
142
+ `--heads grok,codex,openai,glm,minimax,claude,gemini` ยท `--rounds N` (deliberation) ยท
143
+ `--research` (web on, multi-step) ยท `--timeout <secs>` ยท `--out <file>`.
144
+
145
+ Exit 0 if at least one head answered.
146
+
147
+ ## The heads
148
+
149
+ | Head | Provider | Key / auth |
150
+ |------|----------|------------|
151
+ | ๐Ÿค– **Grok** | xAI | `XAI_API_KEY` (or local `grok` CLI / Hermes OAuth) |
152
+ | ๐Ÿง  **Codex** | OpenAI | local `codex` CLI (read-only) |
153
+ | ๐Ÿง  **OpenAI** | OpenAI | `OPENAI_API_KEY` (direct API โ€” no local CLI needed) |
154
+ | ๐ŸŸฃ **GLM** | Z.AI | `ZAI_API_KEY` |
155
+ | ๐ŸŸ  **MiniMax** | MiniMax | `MINIMAX_API_KEY` |
156
+ | ๐Ÿ”ต **Claude** | Anthropic | `ANTHROPIC_API_KEY` (also the deliberation **chair**) |
157
+ | โœจ **Gemini** | Google | `GEMINI_API_KEY` / `GOOGLE_API_KEY` |
158
+
159
+ Heads with no key/CLI are skipped inline โ€” the council runs on whatever subset you've
160
+ configured, so **API keys alone are enough** (no local CLIs required).
161
+
162
+ ## MCP + wire into your harness
163
+
164
+ Roundtable ships an MCP server as a subcommand of the one binary:
165
+
166
+ ```bash
167
+ roundtable mcp serve # stdio JSON-RPC; one tool: roundtable(question, heads?, rounds?, research?)
168
+ roundtable mcp config # prints the server JSON block to paste manually
169
+ ```
170
+
171
+ Add it to Claude Code with one line (needs the command line install):
172
+
173
+ ```bash
174
+ claude mcp add --scope user roundtable -- roundtable mcp serve
175
+ ```
176
+
177
+ Auto-wire detected harnesses (idempotent โ€” backs up first, never clobbers):
178
+
179
+ ```bash
180
+ roundtable install # detect + wire everything present
181
+ roundtable install --harness cursor,codex
182
+ roundtable install --all # non-interactive
183
+ ```
184
+
185
+ Wires **Claude Code** (skill + MCP), **Cursor** (`~/.cursor/mcp.json`),
186
+ **Codex CLI** (`~/.codex/config.toml`), and prints a generic JSON block for anything else:
187
+
188
+ ```json
189
+ { "command": "roundtable", "args": ["mcp", "serve"] }
190
+ ```
191
+
192
+ ## Use in Claude Code
193
+
194
+ Install the plugin with the two lines under [In Claude](#in-claude). It adds:
195
+
196
+ - `/roundtable:ask <question>`: ask the council and get one decision back.
197
+ - `/roundtable:setup`: see which models are ready and how to add keys.
198
+ - The Roundtable skill, which Claude uses when you say "ask the council" or "get a second opinion".
199
+ - The `roundtable` MCP tool and the `roundtable` command.
200
+
201
+ Already installed the command line version? `roundtable install` wires the skill and the MCP
202
+ server into Claude Code, Cursor, and Codex instead.
203
+
204
+ ## Commands
205
+
206
+ ```
207
+ roundtable "question" shorthand for `ask`
208
+ roundtable ask run the council (all engine flags)
209
+ roundtable auth [provider] configure API keys (masked, chmod-600)
210
+ roundtable models per-head model picker
211
+ roundtable heads enable/disable heads
212
+ roundtable doctor which heads are configured + reachability ping
213
+ roundtable config show / edit config.env
214
+ roundtable mcp serve|config MCP stdio server / print config
215
+ roundtable install auto-wire detected harnesses
216
+ roundtable version | update show version / upgrade in place
217
+ ```
218
+
219
+ ## For agents
220
+
221
+ Building on top of Roundtable? See [`AGENTS.md`](./AGENTS.md) โ€” a concise guide for an
222
+ AI agent to install, configure, run, and wire Roundtable into its own harness.
223
+
224
+ ## Links
225
+
226
+ - **Website & docs** โ€” https://roundtable.sh
227
+ - **Source** โ€” https://github.com/frontier-infra/roundtable
228
+ - **Frontier Infra** โ€” https://frontierinfra.org
229
+
230
+ ## Privacy, trademarks, and decision limits
231
+
232
+ Roundtable runs locally and does not send prompts, credentials, or outputs to a
233
+ Frontier Infra service. It sends each requested prompt and supplied context
234
+ directly to the model providers or authenticated local CLIs that the user
235
+ configures. Those requests are governed by the selected providers' terms,
236
+ privacy policies, retention settings, and charges. Keep secrets and data you
237
+ are not authorized to disclose out of council inputs.
238
+
239
+ Roundtable output is advisory. Agreement among models is not proof that a
240
+ recommendation is correct, safe, lawful, or suitable for a production change.
241
+ Provider and product names identify compatible services only. Roundtable and
242
+ Frontier Infra are independent and are not sponsored or endorsed by those
243
+ providers. See [TRADEMARKS.md](./TRADEMARKS.md).
244
+
245
+ Website policies: [Privacy](https://roundtable.sh/docs/privacy) ยท
246
+ [Terms](https://roundtable.sh/docs/terms) ยท
247
+ [Support](https://github.com/frontier-infra/roundtable/issues)
248
+
249
+ ## License
250
+
251
+ [MIT](./LICENSE) ยฉ Frontier Infra