Skip to content

docs: add guide for running agents locally with released binaries#665

Open
waynesun09 wants to merge 2 commits into
mainfrom
docs-running-agents-locally
Open

docs: add guide for running agents locally with released binaries#665
waynesun09 wants to merge 2 commits into
mainfrom
docs-running-agents-locally

Conversation

@waynesun09
Copy link
Copy Markdown
Contributor

Summary

  • New user guide (docs/guides/user/running-agents-locally.md) covering the full workflow for running fullsend agents on macOS and Linux using released binaries — no Go toolchain or source checkout needed
  • Covers: downloading the CLI from GitHub Releases, cloning the .fullsend config directory, creating env files with per-agent variables, running each agent type (triage, review, code, fix), cross-platform binary resolution, platform notes, and troubleshooting
  • Adds entry to docs/guides/README.md under User guides

Split out from #662 to keep the feature PR focused on the code change.

Test plan

  • Verified all internal links resolve (local-dev.md, GitHub Releases URL)
  • Verified docs/guides/README.md entry renders correctly
  • No code changes — docs only

waynesun09 added 2 commits May 5, 2026 12:45
New user guide covering the full workflow without a Go toolchain:
download CLI from GitHub Releases, configure env, run agents on
macOS (Podman Desktop) and Linux (Podman).

Signed-off-by: Wayne Sun <gsun@redhat.com>
Explain how to run agent inference without post-script side effects
(PR comments, branch pushes). Notes that PUSH_TOKEN/REVIEW_TOKEN
are not needed when using this flag.

Signed-off-by: Wayne Sun <gsun@redhat.com>
@fullsend-ai-review
Copy link
Copy Markdown

Review: #665

Head SHA: 6783f21
Timestamp: 2026-05-05T00:00:00Z
Outcome: approve

Summary

Clean documentation-only PR adding a user guide for running fullsend agents locally with released binaries (no Go toolchain required). The new guide at docs/guides/user/running-agents-locally.md is well-structured, technically accurate, and appropriately distinct from the existing developer-oriented docs/guides/dev/local-dev.md. The README index entry follows the established pattern. No code changes, no security concerns, no injection patterns detected.

Findings

Medium

  • [style/conventions] docs/guides/user/running-agents-locally.md — Substantial content overlap with docs/guides/dev/local-dev.md in the prerequisites table, per-agent env vars table, arm64 image override section, and platform notes. Consider extracting shared content into a partial or linking to a single source of truth to reduce maintenance burden as these sections evolve.
    Remediation: Optional — could extract shared sections (env vars table, platform notes) into a shared include or reference one guide from the other. Acceptable as-is given the different target audiences.

Footer

Outcome: approve
This review applies to SHA 6783f2192b74b29a10b18c6368b308c951fde189. Any push to the PR head clears this review and requires a new evaluation.

Copy link
Copy Markdown

@fullsend-ai-review fullsend-ai-review Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See the review comment for full details.

@waynesun09 waynesun09 requested a review from rh-hemartin May 5, 2026 18:17
Copy link
Copy Markdown
Contributor

@ralphbean ralphbean left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for writing this guide — local agent execution is a key gap and this addresses it well. Two items need changes before merging, plus a couple of notes for follow-up.

Also note: this PR should merge after #662 lands, since it documents behavior (cross-platform binary resolution, FULLSEND_SANDBOX_ARCH) that only exists on that branch. Consider linking issue #457 in the PR description — it directly describes this use case.


## Platform notes

### macOS
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[important] The prerequisites say Podman is required with OpenShell 0.0.37-dev+, but this section casually references Docker as if it works ("if using Docker instead of Podman..."). This sends mixed signals — a user with only Docker would think it's supported based on this note, but the prerequisites say otherwise.

Please either:

  1. Remove the Docker reference and state explicitly that Podman is the only supported runtime, or
  2. If Docker genuinely works, list it as an alternative in the prerequisites table.

Also, the guide never explains why OpenShell 0.0.37-dev+ is required (it's the version that adds Podman support). A sentence explaining this would help users understand whether they can use an older version with Docker.


> For building fullsend from source or contributing to the CLI, see [Local development](../dev/local-dev.md).

## Prerequisites
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[moderate] OpenShell is listed as a prerequisite but the guide never explains what it is, where to get it, or how to install it. The troubleshooting section mentions openshell version but a new user encountering OpenShell for the first time would be stuck. Please add a brief install step or link to OpenShell's installation docs.


```bash
gh repo clone <org>/.fullsend /tmp/fullsend-dot
```
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[moderate — deferred] Nit: /tmp/fullsend.env is world-readable on most systems, which means tokens and credential paths are accessible to any local user. Consider suggesting ~/.config/fullsend/env as the example path and adding a chmod 600 note. Not blocking, but worth addressing in a follow-up.

@@ -0,0 +1,197 @@
# Running agents locally
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[minor — deferred] This guide documents FULLSEND_SANDBOX_ARCH and cross-platform binary resolution behavior that only exists in PR #662's branch. This creates a merge ordering dependency — please merge after #662 lands. Also consider linking issue #457 ("Support local execution of individual agents for pre-adoption evaluation") in the PR description since it directly describes this use case.


```bash
tar xzf fullsend_0.4.0_darwin_arm64.tar.gz
sudo mv fullsend_0.4.0_darwin_arm64/fullsend /usr/local/bin/
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Move it to $HOME/.local/bin instead.

--no-post-script
```

The agent runs normally inside the sandbox, but the post-script is skipped. This means `PUSH_TOKEN` and `REVIEW_TOKEN` are not needed in your env file — only the core variables (`GH_TOKEN`, GCP credentials) are required.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this really true?

Comment on lines +101 to +135
### Example: triage an issue

```bash
fullsend run triage \
--fullsend-dir /tmp/fullsend-dot \
--target-repo /path/to/repo \
--env-file /tmp/fullsend.env
```

### Example: review a pull request

```bash
fullsend run review \
--fullsend-dir /tmp/fullsend-dot \
--target-repo /path/to/repo \
--env-file /tmp/fullsend.env
```

### Example: implement an issue

```bash
fullsend run code \
--fullsend-dir /tmp/fullsend-dot \
--target-repo /path/to/repo \
--env-file /tmp/fullsend.env
```

### Example: fix review feedback on a PR

```bash
fullsend run fix \
--fullsend-dir /tmp/fullsend-dot \
--target-repo /path/to/repo \
--env-file /tmp/fullsend.env
```
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I feel these examples are not useful, the only thing that changes is the command. If we want to provide better examples I would provide them with the env variables, which is the tricky part.

@ben-alkov
Copy link
Copy Markdown
Contributor

Need details on

  • How to create a valid SA for GOOGLE_APPLICATION_CREDENTIALS
  • Specifically what kind of token, with which permissions, for GH_TOKEN

Copy link
Copy Markdown
Contributor

@ralphbean ralphbean left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review Summary

This is a well-structured documentation PR that addresses issue #457. The guide is comprehensive and follows good documentation practices.

Strategic assessment: ✅ Good direction. The change fits the project scope and directly addresses a documented user need.

Existing discussion: The PR already has thorough review comments from @ralphbean and @rh-hemartin covering the most important issues:

  • Docker/Podman support clarity (important)
  • OpenShell installation instructions (moderate)
  • Security concerns with /tmp/ paths (moderate, deferred)
  • Merge ordering dependency on #662 (minor, deferred)
  • Install path preferences and example improvements

I'm adding two minor notes below for future consideration. Approving since the documentation is solid and the existing comments cover the substantive issues.


Dependencies: This PR documents features from #662, so it should merge after #662 lands (already noted by @ralphbean).

| Linux (x86_64) | `fullsend_{version}_linux_amd64.tar.gz` |
| Linux (arm64) | `fullsend_{version}_linux_arm64.tar.gz` |

Extract and move to a directory in your PATH:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[moderate — deferred] Consider adding a step to verify the downloaded binary checksum or signature. This is a security best practice for software distribution. GoReleaser can generate checksums files automatically — if the release includes a checksums.txt, add a verification step:

# Verify the checksum (optional but recommended)
shasum -a 256 -c checksums.txt 2>&1 | grep fullsend_0.4.0_darwin_arm64.tar.gz

Not blocking for this PR, but worth considering for a future update.

- The default `:latest` tag is amd64-only. Add `FULLSEND_SANDBOX_IMAGE=ghcr.io/fullsend-ai/fullsend-sandbox:dev` to your env file

**`unable to replace "host-gateway"` on macOS**
- Set `host_containers_internal_ip = "192.168.127.254"` under `[containers]` in `~/.config/containers/containers.conf` and restart the Podman machine
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[minor — deferred] Consider adding a "Cleanup" or "Maintenance" section covering:

  • How to remove stopped sandbox containers (podman ps -a, podman rm)
  • When/how to update the local .fullsend config directory clone
  • How to clean up temporary artifacts

Users following this guide might accumulate containers or wonder about keeping their config up-to-date. Not urgent, but would round out the guide.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants