docs: add three-step and agent-assisted setup workflow
This commit is contained in:
1 parent
5682508644
commit
0ae1fccfba
2 files changed
+174
-61
No files matched your search
@@ -1,103 +1,114 @@
|
||||
> Development candidate: **0.3.2~compat.20261027.1** for Debian, Ubuntu and Linux Mint on amd64. See [candidate scope and validation](docs/LINUX-COMPATIBILITY-CANDIDATE.md). Build profiles are not proof of live production compatibility. The official signed 0.3.1 release described below remains a separate artifact.
|
||||
|
||||
# FrameBridge
|
||||
|
||||
**Bring your ChatGPT conversations to Linux computers you control.**
|
||||
|
||||
FrameBridge connects a hosted ChatGPT conversation to tools running on your own computers. Run a task, return to a persistent Bash terminal, inspect the real desktop, and select an enrolled node.
|
||||
Run a task on your own machine, return to the same Bash terminal, inspect an X11 desktop, or select an enrolled computer. ChatGPT remains hosted; FrameBridge runs the tools on your Linux computers.
|
||||
|
||||
**Community Release 0.3.1** · **Debian 13 amd64** · **Python 3.13**
|
||||
> **Development candidate: `0.3.2~compat.20261027.2`.** This revision is being validated. It is not a signed public release. The separately signed 0.3.1 release remains a different artifact. Read the [candidate scope and validation record](docs/LINUX-COMPATIBILITY-CANDIDATE.md) before choosing a package.
|
||||
|
||||
The installer and control console are text interfaces in a Linux TTY or desktop terminal. FrameBridge detects a usable graphical X11 session automatically and adds graphical CUA when available. Text mode provides FBEXEC, persistent terminals and CUA-TTY. Adaptive mode does not silently create a virtual desktop.
|
||||
## Start here
|
||||
|
||||
ChatGPT remains hosted. The tools execute on your own machines. Your own ChatGPT account and manual browser approval are required; a local account label does not authenticate you. No phone pairing is required.
|
||||
Start on the Linux computer you want to connect, with a person at its terminal or an assistant already given shell access there. Your ChatGPT account and manual browser approval complete the connection. No phone pairing is required.
|
||||
|
||||
## Install and connect
|
||||
| Step | What you do | What to check |
|
||||
| --- | --- | --- |
|
||||
| **1. Install** | Choose the package matching your distribution and Python version, verify its release record, then install it with APT. | The package manager resolves dependencies for that computer. |
|
||||
| **2. Connect** | Run `fb connect` in your normal terminal and enter the requested connection details there. Complete browser sign-in and approval yourself. | The command reports the real connection result and returns to the prompt. |
|
||||
| **3. Verify** | Run `fb status`, `fb doctor`, then `fb console`. In ChatGPT, ask the connected FrameBridge help tool for a small terminal task. | Confirm the selected machine and the result of the task. |
|
||||
|
||||
Verify the release checksums and signatures using the independently trusted project key before installing. See [Official releases](OFFICIAL-RELEASES.md) for the trust model and the project site for the signed release record.
|
||||
### 1. Install the matching package
|
||||
|
||||
On Debian 13 amd64, with the downloaded installer in the current directory:
|
||||
The compatibility candidate has separate native Python builds; it is not one interchangeable `.deb` for every Linux system.
|
||||
|
||||
| Distribution | Architecture | System Python | Candidate package profile |
|
||||
| --- | --- | --- | --- |
|
||||
| Debian 13 | amd64 / x86_64 | 3.13 | `debian13-amd64-py313` |
|
||||
| Ubuntu 24.04 | amd64 / x86_64 | 3.12 | `ubuntu24.04-amd64-py312` |
|
||||
| Linux Mint 22.x | amd64 / x86_64 | 3.12 | `mint22-amd64-py312` |
|
||||
|
||||
The preceding `.1` candidate passed VM tests on these systems, including Cinnamon on Mint 22.3, and a Debian production pilot. This `.2` revision needs its own validation. Ubuntu 26.04 and LMDE 7 builds remain experimental; other distributions, older releases and CPU architectures are outside this candidate's scope.
|
||||
|
||||
Verify official releases with the independently trusted project key as described in [Official releases](OFFICIAL-RELEASES.md). A candidate's recorded SHA-256 identifies its reviewed file; it is not a release signature. Candidate packages are for reviewed pilots.
|
||||
|
||||
For example, with the **Mint** candidate downloaded into the current directory:
|
||||
|
||||
~~~bash
|
||||
sudo apt install ./FrameBridge-0.3.1.deb
|
||||
fb connect
|
||||
fb status
|
||||
sudo apt install ./FrameBridge-0.3.2~compat.20261027.2-mint22-amd64-py312.deb
|
||||
~~~
|
||||
|
||||
Normal first connection needs no separate setup or start command. The terminal asks for an optional account label, a hidden tunnel ID and a hidden MCP server access key. This access key is not an OpenAI API key. Complete any browser sign-in and approval separately.
|
||||
Use the corresponding profile filename on Debian or Ubuntu. Review APT's proposed changes for the actual computer. Installation places the software on disk; it does not establish a ChatGPT connection or replace the system Python.
|
||||
|
||||
Normal connection prepares managed Linux startup, stores the saved credential encrypted on this machine, reports progress and returns to the prompt. It does not force a reboot. Repeating the command resumes valid saved settings; explicit replacement is available through fb connect --replace.
|
||||
### 2. Connect from your terminal
|
||||
|
||||
## One command interface for people and agents
|
||||
~~~bash
|
||||
fb connect
|
||||
~~~
|
||||
|
||||
The executable names fb and framebridge run the same program.
|
||||
First connection needs no separate setup or start command. Have your tunnel ID and MCP server access key ready from the manual connection setup described in `fb help`. Enter them in the hidden local prompts and complete browser approval yourself. The key is not an OpenAI API key; the optional account label does not authenticate you.
|
||||
|
||||
| Command | Purpose |
|
||||
| --- | --- |
|
||||
| fb connect | Establish or resume the managed ChatGPT connection. |
|
||||
| fb disconnect | Pause that connection until the next explicit connect, including after restart. Local tools and saved material remain. |
|
||||
| fb status | Observe actual tools, connection and boot policy together. |
|
||||
| fb status connection | Observe just the connection, including its intended state. |
|
||||
| fb doctor | Diagnose prerequisites and problems; it does not repair or connect. |
|
||||
| fb console | Open or reattach the text Bash/FBTERM work view. |
|
||||
| fb help | Read the versioned English guide. |
|
||||
| fb setup | Optional advanced role/profile configuration. |
|
||||
The managed connection saves an encrypted credential locally, prepares startup, reports progress and returns to the prompt without requiring a reboot. Repeating `fb connect` resumes valid saved settings. Read the guide before replacing them with `fb connect --replace`.
|
||||
|
||||
Read fb help commands for specialized service, boot, node, framebuffer-access and terminal-session controls. Legacy spellings are described separately in fb help compatibility.
|
||||
### 3. Verify and use it
|
||||
|
||||
For an agent or script:
|
||||
~~~bash
|
||||
fb status
|
||||
fb doctor
|
||||
fb console
|
||||
~~~
|
||||
|
||||
Start with a harmless terminal task, such as reporting the hostname and current directory. Status distinguishes local tools, connection and startup policy. Doctor diagnoses prerequisites; it does not repair or connect.
|
||||
|
||||
The console works in a Linux TTY or desktop terminal. A local X11 session adds graphical CUA. Terminal text, real screen captures and explicitly selected virtual displays are identified separately. A VM test does not prove the owner's physical desktop or Wayland.
|
||||
|
||||
### Optional virtual desktop
|
||||
|
||||
Text mode and an existing X11 desktop work without a virtual desktop. For an explicitly selected virtual display, install its optional tools yourself:
|
||||
|
||||
~~~bash
|
||||
sudo apt install xvfb openbox xauth
|
||||
~~~
|
||||
|
||||
Openbox can register itself as the generic window manager when installed. Review that desktop choice when opting in. Normal FrameBridge installation does not request Xvfb or Openbox; `xauth` remains a shared X11 dependency. `fb doctor` reports virtual-display availability separately. Read `fb help commands` for the explicit virtual mode.
|
||||
|
||||
## Use it with an assistant
|
||||
|
||||
Give a coding assistant that already has shell access the [FrameBridge agent-start workflow](docs/FRAMEBRIDGE-AGENT-START.md). The same CLI is available for people and scripts:
|
||||
|
||||
~~~bash
|
||||
fb --json status
|
||||
fb help commands --json
|
||||
~~~
|
||||
|
||||
Explicit JSON output is versioned and does not request interactive input. When owner authentication is needed, it reports INTERACTION_REQUIRED with an action for a normal terminal. The MCP server also invites an agent to read its registered help tool. This supplies usage context; client compliance must not be assumed from the invitation alone.
|
||||
JSON output is versioned and never prompts. `INTERACTION_REQUIRED` gives an action for the owner's normal terminal. The agent workflow helps an existing shell-based assistant install and diagnose FrameBridge; it does not claim every AI client is a tested replacement for ChatGPT.
|
||||
|
||||
## Services, terminals and desktops
|
||||
`fb` and `framebridge` are names for the same program. Read `fb help` for the English guide and `fb help compatibility` for legacy commands.
|
||||
|
||||
Service execution, connection intent, boot policy and saved material are separate:
|
||||
## Pause, stop or remove
|
||||
|
||||
- fb service start and fb service stop control the current stack. The first start of a configured node can also prepare its managed startup; that initial provisioning is reported explicitly.
|
||||
- fb service boot enable and fb service boot disable control future startup without stopping current work or forgetting a saved credential.
|
||||
- fb service credentials forget --confirm is a separate destructive operation: it removes the managed connection setup and saved material while retaining the profile and user persistence.
|
||||
| Intended result | Command | What remains |
|
||||
| --- | --- | --- |
|
||||
| Pause the ChatGPT connection until the next explicit connect, including after restart | `fb disconnect` | Local tools and saved material. |
|
||||
| Stop the current managed stack | `fb service stop` | Future startup policy and saved material. |
|
||||
| Disable future managed startup | `fb service boot disable` | Current execution and saved material. |
|
||||
| Remove the package without removing its dependencies automatically | `sudo dpkg --remove framebridge-original-expanded` | User-profile data can remain. |
|
||||
|
||||
Persistent Bash sessions retain shell state between calls while the session and service remain alive. They do not preserve running processes across an operating-system reboot. Changing a session's sudo mode recreates Bash and loses its internal shell state; consult the guide before doing so.
|
||||
Removal stops package-owned managed processes and revokes administrative helper grants. Reinstalling requires an interactive `fb connect` to reprovision what is needed. Removal/purge may retain profiles; forgetting saved connection material is a separate action in `fb help commands`.
|
||||
|
||||
CLI terminal observation is text. Real CUA captures are separate, authentic screen evidence. Private virtual displays, when explicitly selected, are identified as virtual.
|
||||
These controls undo specific operations, not a whole computer snapshot. Bash state persists between calls while the session lives, not across reboots. Changing its sudo mode recreates Bash and loses its shell state.
|
||||
|
||||
Independent FBEXEC tasks have been observed to work on one computer when their targets and changes do not overlap. This is not an isolation guarantee. Use one controller at a time for a shared graphical desktop.
|
||||
## Source, licensing and contributions
|
||||
|
||||
## Source, licenses and official releases
|
||||
Original FrameBridge material is **GNU GPL version 3 only (`GPL-3.0-only`)**. Third-party material keeps its own licenses and notices. Read [LICENSING.md](LICENSING.md), [COPYRIGHT.md](COPYRIGHT.md) and [LICENSE-STATUS.md](LICENSE-STATUS.md).
|
||||
|
||||
Original FrameBridge material is licensed under **GNU GPL version 3 only (GPL-3.0-only)**. Third-party material retains its own notices and license terms. Read [LICENSING.md](LICENSING.md), [COPYRIGHT.md](COPYRIGHT.md) and [LICENSE-STATUS.md](LICENSE-STATUS.md).
|
||||
Versioned source archives include the FrameBridge implementation, builders, tests and legal records. The shared Python/Rust dependency source asset and the tunnel client's dependency sources retain their reviewed historical 0.3.1 filenames. Exact sizes, hashes, scope and upstream provenance are recorded in `licensing/third-party`. The retained tunnel executable is not presented as independently rebuilt from an identified upstream source revision. Building FrameBridge does not claim an independent rebuild of every embedded native component.
|
||||
|
||||
The distribution source set contains:
|
||||
Use `python3 source/packaging/build_expanded.py --help` for package build profiles and `python3 source/packaging/archive_sources.py --help` for source archiving. Building does not install, start, sign or publish the product.
|
||||
|
||||
- FrameBridge-0.3.1-source.tar.gz — FrameBridge implementation, builder, tests and legal records.
|
||||
- FrameBridge-0.3.1-Community-Preview1-dependency-sources.tar.gz — the immutable shared Python/Rust dependency source asset; its historical name is retained deliberately.
|
||||
- FrameBridge-0.3.1-tunnel-client-dependency-sources.tar.gz — retained source archives and notices for the tunnel executable's Go dependencies.
|
||||
|
||||
Exact sizes, hashes, scope and upstream provenance are recorded in licensing/third-party. The retained tunnel executable is not presented as independently rebuilt from an identified upstream source revision.
|
||||
|
||||
~~~bash
|
||||
python3 source/packaging/build_expanded.py
|
||||
python3 source/packaging/archive_sources.py
|
||||
~~~
|
||||
|
||||
These commands assemble the Debian package and project source archive; they do not install or start FrameBridge. Build prerequisites must already be available. Rebuilding the project package does not claim an independent rebuild of every embedded native component.
|
||||
|
||||
Release signatures and publication readiness are recorded separately from the builder. A successful build alone is not proof that a release is signed or publicly available.
|
||||
|
||||
Everyone retains the applicable freedoms to modify and redistribute lawful copies. Contributing through the project Git is welcome; it is not an additional license condition. Maintainers review what enters the official repository and sign official releases. Independent variants must not be represented as maintainer-approved releases.
|
||||
|
||||
## Community and credits
|
||||
Read [CONTRIBUTING.md](CONTRIBUTING.md) to propose a change and [SECURITY.md](SECURITY.md) for security reports. Useful compatibility reports name the exact distribution, version, Python version, package profile and tests actually performed. Independent copies retain their applicable software freedoms; they must not be presented as maintainer-approved releases.
|
||||
|
||||
Project home: https://framebridge.betancourt.one/
|
||||
|
||||
Programming: **ChatGPT**.
|
||||
Original concept and project coordination: **Gerardo Betancourt**.
|
||||
|
||||
FrameBridge is an independent community project. No endorsement by OpenAI is claimed.
|
||||
|
||||
Read [CONTRIBUTING.md](CONTRIBUTING.md) before proposing changes and [SECURITY.md](SECURITY.md) for the security process. The English Debian guide is available through fb help and the included documentation. Demonstration animations are conceptual illustrations, not recordings of tool execution.
|
||||
FrameBridge is an independent community project; no OpenAI endorsement is claimed. Demonstration animations are conceptual illustrations, not recordings of tool execution. Use one controller at a time for a shared graphical desktop. Independent FBEXEC tasks observed on different work targets are not an isolation guarantee.
|
||||
Reference in new issue
Block a user