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.
- roundtable_sh-0.1.1/.claude-plugin/marketplace.json +19 -0
- roundtable_sh-0.1.1/.claude-plugin/plugin.json +53 -0
- roundtable_sh-0.1.1/.gitignore +15 -0
- roundtable_sh-0.1.1/AGENTS.md +172 -0
- roundtable_sh-0.1.1/LICENSE +21 -0
- roundtable_sh-0.1.1/PKG-INFO +251 -0
- roundtable_sh-0.1.1/README.md +230 -0
- roundtable_sh-0.1.1/TRADEMARKS.md +14 -0
- roundtable_sh-0.1.1/bin/roundtable +115 -0
- roundtable_sh-0.1.1/commands/ask.md +10 -0
- roundtable_sh-0.1.1/commands/setup.md +13 -0
- roundtable_sh-0.1.1/lib/config.sh +494 -0
- roundtable_sh-0.1.1/lib/core.selftest.sh +85 -0
- roundtable_sh-0.1.1/lib/core.sh +359 -0
- roundtable_sh-0.1.1/lib/install.sh +256 -0
- roundtable_sh-0.1.1/lib/mcp.py +350 -0
- roundtable_sh-0.1.1/pyproject.toml +64 -0
- roundtable_sh-0.1.1/roundtable_cli/__init__.py +52 -0
- roundtable_sh-0.1.1/roundtable_cli/__main__.py +6 -0
- roundtable_sh-0.1.1/skills/roundtable/SKILL.md +119 -0
|
@@ -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)
|
|
29
|
+
[](https://frontierinfra.org)
|
|
30
|
+
[](https://roundtable.sh)
|
|
31
|
+
[](#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
|