@paradigma-inc/flywheel 0.1.4 → 0.1.9
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/README.md +129 -24
- package/package.json +10 -8
- package/skills/flywheel/SKILL.md +52 -0
- package/skills/flywheel/agents/openai.yaml +15 -0
- package/skills/flywheel/campaigns/participating-in-a-campaign.md +18 -0
- package/skills/flywheel/compute/credits-and-billing.md +11 -0
- package/skills/flywheel/compute/managed-compute.md +44 -0
- package/skills/flywheel/example-workflows/organizing-exploring-and-iterating-on-a-research-topic.md +255 -0
- package/skills/flywheel/example-workflows/reproducing-papers-on-a-budget.md +151 -0
- package/skills/flywheel/getting-started/account-access.md +8 -0
- package/skills/flywheel/getting-started/flywheel-quickstart.md +23 -0
- package/skills/flywheel/getting-started/flywheel-tutorial-overview.md +30 -0
- package/skills/flywheel/reference/experiment-design-protocol.md +200 -0
- package/skills/flywheel/reference/flywheel-mcp-tool-map.md +160 -0
- package/skills/flywheel/setting-up-flywheel/claude-code-cli-installation.md +16 -0
- package/skills/flywheel/setting-up-flywheel/codex-cli-installation.md +16 -0
- package/skills/flywheel/setting-up-flywheel/how-can-i-get-an-authorized-client_id-for-the-oauth-flow.md +50 -0
- package/skills/flywheel/setting-up-flywheel/installation-overview.md +26 -0
- package/skills/flywheel/setting-up-flywheel/other-hosts-installation.md +40 -0
- package/skills/flywheel/setting-up-flywheel/updating-flywheel-mcp.md +21 -0
- package/skills/flywheel/usage-and-workflows/using-local-hardware-with-flywheel.md +57 -0
- package/skills/flywheel/usage-and-workflows/what-to-do-with-flywheel.md +34 -0
- package/skills/flywheel/web-ui/flywheel-webui-map.md +28 -0
- package/skills/flywheel/web-ui/the-flywheel-web-ui.md +17 -0
- package/src/cli.mjs +508 -54
- package/src/mcp-writer.mjs +128 -3
- package/src/setup-auth.mjs +231 -27
- package/src/skill-installer.mjs +542 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# [](https://flywheel.paradigma.inc//#setting-up-flywheel)Setting up Flywheel
|
|
2
|
+
|
|
3
|
+
We are in the business of automating science. As such, our first interface to Flywheel is through autonomous agents, specifically via the [Model Context Protocol (MCP)](https://modelcontextprotocol.io/docs/getting-started/intro).
|
|
4
|
+
|
|
5
|
+
MCP enables you to natively connect and authenticate Flywheel to any compatible hosts. We recommend using Flywheel with [Codex](https://github.com/openai/codex) or [Claude code](https://github.com/anthropics/claude-code), but any MCP host should work.
|
|
6
|
+
|
|
7
|
+
## [](https://flywheel-staging.paradigma.inc/tutorial#one-command-setup-recommended)One-command setup (recommended)
|
|
8
|
+
|
|
9
|
+
Simply run:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npx @paradigma-inc/flywheel setup
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## [](https://flywheel-staging.paradigma.inc/tutorial#reinstall--cleanup)Reinstall / cleanup
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npx @paradigma-inc/flywheel setup
|
|
19
|
+
npx @paradigma-inc/flywheel uninstall
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
`uninstall` removes Flywheel MCP entries from host config files.
|
|
23
|
+
|
|
24
|
+
## [](https://flywheel-staging.paradigma.inc/tutorial#web-connector-hosts-chatgptcom--claudeai--etc-)Web connector hosts (ChatGPT.com / Claude.ai / etc. )
|
|
25
|
+
|
|
26
|
+
Web connector hosts can still use OAuth-style connector flows. Keep using those host-native connector install UIs for ChatGPT.com custom apps, Claude.ai custom connectors, etc. Simply put `https://flywheel.paradigma.inc/mcp-server` as the URL when prompted.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# [](https://flywheel.paradigma.inc//#other-mcp-hosts)Other MCP hosts
|
|
2
|
+
|
|
3
|
+
If your host is not currently supported by `npx @paradigma-inc/flywheel setup`, you can still connect manually.
|
|
4
|
+
|
|
5
|
+
1. In the Flywheel WebUI, open **Settings**, go to the **User** tab, expand **MCP API keys**, and click **Create key**.
|
|
6
|
+
2. Copy the key immediately (it is shown once).
|
|
7
|
+
3. Add a Flywheel MCP server entry in your host config with:
|
|
8
|
+
- URL: `https://flywheel.paradigma.inc/mcp-server`
|
|
9
|
+
- Header: `Authorization: Bearer <YOUR_MCP_API_KEY>`
|
|
10
|
+
|
|
11
|
+
Example JSON-style host config:
|
|
12
|
+
|
|
13
|
+
```json
|
|
14
|
+
{
|
|
15
|
+
"mcpServers": {
|
|
16
|
+
"flywheel": {
|
|
17
|
+
"type": "http",
|
|
18
|
+
"url": "https://flywheel.paradigma.inc/mcp-server",
|
|
19
|
+
"headers": {
|
|
20
|
+
"Authorization": "Bearer <YOUR_MCP_API_KEY>"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Example TOML-style host config:
|
|
28
|
+
|
|
29
|
+
```toml
|
|
30
|
+
[mcp_servers.flywheel]
|
|
31
|
+
type = "http"
|
|
32
|
+
url = "https://flywheel.paradigma.inc/mcp-server"
|
|
33
|
+
|
|
34
|
+
[mcp_servers.flywheel.headers]
|
|
35
|
+
Authorization = "Bearer <YOUR_MCP_API_KEY>"
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Different hosts use different field names (`mcpServers`, `mcp_servers`, `mcp.servers`, etc.), but the server URL and `Authorization` bearer header are the key pieces.
|
|
39
|
+
|
|
40
|
+
Alternative: for any host that supports MCP OAuth, you can use its OAuth connector install flow and set the MCP URL to `https://flywheel.paradigma.inc/mcp-server`. Web connector hosts (for example ChatGPT.com, Claude.ai) commonly use this path. It can be convenient, but it may prompt re-authorization more often than the API key route depending on the host token lifecycle and refresh behavior.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# How to Update Flywheel MCP
|
|
2
|
+
|
|
3
|
+
For most users, reinstall / cleanup is:
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
npx @paradigma-inc/flywheel setup
|
|
7
|
+
npx @paradigma-inc/flywheel uninstall
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
`uninstall` removes Flywheel MCP entries from host config files.
|
|
11
|
+
|
|
12
|
+
## FAQ: How Do I Migrate from the Previous OAuth-Based MCP Client Setup?
|
|
13
|
+
|
|
14
|
+
If you installed Flywheel MCP before April 2026, migrate to the newer, more stable API key authentication setup with:
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
npx @paradigma-inc/flywheel uninstall
|
|
18
|
+
npx @paradigma-inc/flywheel setup
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
If your previous install used a server name different from `flywheel`, pass `--name <old-name>` to uninstall that specific entry.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Using Local Hardware with Flywheel
|
|
2
|
+
|
|
3
|
+
Yes, you can use Flywheel with your local hardware.
|
|
4
|
+
|
|
5
|
+
Flywheel does **not** require managed cloud compute for every workflow. If you want to run experiments on your own machine, you can tell your MCP host that you want to use local hardware instead of provisioning managed compute.
|
|
6
|
+
|
|
7
|
+
This guide is based on direct team clarification:
|
|
8
|
+
|
|
9
|
+
- local hardware use is supported
|
|
10
|
+
- you should tell your MCP host explicitly that you want to use your local machine
|
|
11
|
+
- if the host refuses or insists on remote provisioning, that is something worth flagging
|
|
12
|
+
|
|
13
|
+
## What to tell your MCP host
|
|
14
|
+
|
|
15
|
+
Be explicit. For example:
|
|
16
|
+
|
|
17
|
+
```text
|
|
18
|
+
Use my local hardware for this experiment.
|
|
19
|
+
Do not provision managed compute.
|
|
20
|
+
Run this on my local GPU / local machine instead.
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
If you want Flywheel to track the work but not spin up remote machines, say so directly.
|
|
24
|
+
|
|
25
|
+
## Typical workflow
|
|
26
|
+
|
|
27
|
+
1. Ask your MCP host to create or use a Flywheel node for the experiment.
|
|
28
|
+
2. State clearly that the experiment should run on your local hardware.
|
|
29
|
+
3. Let the host organize the work in Flywheel while executing locally.
|
|
30
|
+
4. Review the results and attached artifacts in Flywheel as usual.
|
|
31
|
+
|
|
32
|
+
## When the MCP feels ambiguous
|
|
33
|
+
|
|
34
|
+
If the contract or tool behavior feels ambiguous, use more explicit wording such as:
|
|
35
|
+
|
|
36
|
+
```text
|
|
37
|
+
Create a node for this experiment, but keep execution local.
|
|
38
|
+
Do not request budget approval.
|
|
39
|
+
Do not acquire managed compute.
|
|
40
|
+
Use my local machine only.
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## If it refuses
|
|
44
|
+
|
|
45
|
+
If your MCP host refuses to use local hardware, tries to provision remote compute anyway, or acts as if managed compute is mandatory:
|
|
46
|
+
|
|
47
|
+
- restate the request more explicitly
|
|
48
|
+
- tell it not to request budget approval
|
|
49
|
+
- tell it not to acquire managed compute
|
|
50
|
+
- report the behavior, since the Flywheel team has already said they want to make this contract clearer
|
|
51
|
+
|
|
52
|
+
## Practical takeaway
|
|
53
|
+
|
|
54
|
+
- Flywheel can use managed compute
|
|
55
|
+
- Flywheel can also be used with local hardware
|
|
56
|
+
- if you want local execution, say it explicitly
|
|
57
|
+
- if the host refuses, that is likely a tooling or contract clarity problem, not a sign that local hardware is unsupported
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# [](https://flywheel.paradigma.inc//#what-to-do-with-flywheel)What to do with Flywheel?
|
|
2
|
+
|
|
3
|
+
In our experience the best way to get an answer to this question is to ask it to your MCP host:
|
|
4
|
+
|
|
5
|
+
```console
|
|
6
|
+
$ <your-mcp-host> "tell me about flywheel, what can i do with it?"
|
|
7
|
+
|
|
8
|
+
In this workspace, Flywheel is a node-based system for organizing and executing
|
|
9
|
+
work (especially research/experiments) with reproducibility and auditability
|
|
10
|
+
built in.
|
|
11
|
+
|
|
12
|
+
What you can do with it:
|
|
13
|
+
|
|
14
|
+
- Create work nodes and classify them as insight (thinking/analysis) or empirical (actual experiments).
|
|
15
|
+
- Build a graph of work with branching/merging, not just a linear log.
|
|
16
|
+
- Commit outcomes with required structure (kind, outcome, summary) so results stay consistent.
|
|
17
|
+
- Launch managed compute for a node with budget controls and track execution state.
|
|
18
|
+
- Attach artifacts to nodes (text, tables, JSON, images, HTML/plots, checkpoints, diffs).
|
|
19
|
+
- Collaborate with others by sharing nodes/graphs.
|
|
20
|
+
- Tag nodes, audit changes, and export summaries/PDFs/subgraphs.
|
|
21
|
+
|
|
22
|
+
Typical use cases:
|
|
23
|
+
|
|
24
|
+
- Experiment tracking with hypotheses + evidence.
|
|
25
|
+
- Decision logs and technical investigations.
|
|
26
|
+
- Team-shared research graphs with reproducible outputs.
|
|
27
|
+
- Converting a messy exploration into a reviewable, auditable record.
|
|
28
|
+
|
|
29
|
+
If you want, I can walk you through creating your first node and a minimal workflow for your current project.
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Francesco is documenting some example workflows on his [X profile](https://x.com/tensorqt), like [organizing, exploring and iterating on a research topic](https://x.com/tensorqt/status/2032190671281332280?s=20) or [reproducing papers on a budget](https://x.com/tensorqt/status/2032555892399305171).
|
|
33
|
+
|
|
34
|
+
We'll be sharing more example workflows there and also through our [Discord](https://discord.gg/aFg4zskefj), where we do weekly office hours. You should join!
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Flywheel Web UI Map
|
|
2
|
+
|
|
3
|
+
Use this map when a user asks where to find a feature in the web interface.
|
|
4
|
+
|
|
5
|
+
## Primary Areas
|
|
6
|
+
|
|
7
|
+
- Graph canvas: browse nodes, branches, and topology for the current workspace.
|
|
8
|
+
- Node panel: inspect node metadata, summaries, hypotheses, outcomes, artifacts,
|
|
9
|
+
and access state.
|
|
10
|
+
- Artifact views: open uploaded artifacts (plots, tables, JSON, text, HTML).
|
|
11
|
+
- Search and filters: narrow nodes by title, kind, state, and tags.
|
|
12
|
+
- Access and sharing controls: review and update visibility/collaboration policy.
|
|
13
|
+
- Settings: account-level preferences, machines/leases, and credit-related pages.
|
|
14
|
+
|
|
15
|
+
## Navigation Tips
|
|
16
|
+
|
|
17
|
+
- If the user is trying to create or mutate nodes, route them to MCP tools first;
|
|
18
|
+
treat Web UI as visibility and inspection by default.
|
|
19
|
+
- If the user reports a graph mismatch, cross-check node state through MCP reads
|
|
20
|
+
(`list_nodes`, `get_node`, `get_node_tree`) before assuming UI-only issues.
|
|
21
|
+
- If the user asks about compute cost or lease lifecycle, direct to Settings
|
|
22
|
+
machine and credit views plus `compute/*` references.
|
|
23
|
+
|
|
24
|
+
## Pairing With Other Docs
|
|
25
|
+
|
|
26
|
+
- Start with `web-ui/the-flywheel-web-ui.md` for overview behavior.
|
|
27
|
+
- Use `reference/flywheel-mcp-tool-map.md` when the answer depends on exact MCP
|
|
28
|
+
tool capabilities or runtime contract.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# [](https://flywheel.paradigma.inc//#the-flywheel-webui)The Flywheel WebUI
|
|
2
|
+
|
|
3
|
+
While most of your write-driven interactions with Flywheel will likely be through your MCP host, you will find the [https://flywheel.paradigma.inc](https://flywheel.paradigma.inc) WebUI useful for visualizing your graph and managing nodes and admin.
|
|
4
|
+
|
|
5
|
+
The Flywheel WebUI presents itself as a "Canvas" where the directed acylic graph of nodes is visualized. Initially this graph will be empty, but gets populated as you create nodes through your MCP host. With the top right visibility dropdown, you can also view graphs that have been shared with you or have been made public. You can drag the nodes around to organize them, hover over them to preview their content and click on them for more details. You can pan and zoom around the canvas.
|
|
6
|
+
|
|
7
|
+

|
|
8
|
+
|
|
9
|
+
You can also toggle timeline view for a more organized, linear view of the graphs:
|
|
10
|
+
|
|
11
|
+

|
|
12
|
+
|
|
13
|
+
You can also shift select some nodes and generate summaries of their content and or export them as PDFs and/or JSON files for others to import. Of course, you can also use your MCP host to generate summaries and overviews of your research graph.
|
|
14
|
+
|
|
15
|
+
Inside a node, you will be able to see the artifacts attached to it, a summary and possibly the hypothesis and/or insight that was recorded for this node.
|
|
16
|
+
|
|
17
|
+

|