# Share Jules's Output — Beyond the Pull Request

Canonical: https://commareports.com/agents/share-jules-output
Published: 2026-09-05

> Jules works asynchronously on a cloud VM and returns a pull request. For the analysis that is not a diff, a publish step in the workflow gives it a URL and a comment thread.

# Share what Jules produced

The asynchronous model is the appealing part: hand over a task, close the
laptop, come back to a pull request. It is also the part that makes output
hard to circulate, because nobody was present at the moment the work finished
to decide what to do with it.

For a diff, the pull request is the right artifact and the review already
happens there. For the other half of what an agent produces — the dependency
audit, the "here is why this cannot be fixed the way you asked" write-up, the
migration risk list — a PR is a container for changes being merged, and this
is not that.

## Let the workflow publish it

Have the run leave the document in the branch, and let the pipeline that
already runs on that branch turn it into a page:

```yaml
- name: Publish the analysis
  if: hashFiles('analysis.html') != ''
  run: |
    URL=$(curl -sS -X POST https://commareports.com/api/v1/reports \
      -H "Authorization: Bearer ${{ secrets.COMMA_TOKEN }}" \
      -H "Content-Type: application/json" \
      -d "$(jq -n --arg t "$GITHUB_REF_NAME analysis" \
            --rawfile h analysis.html '{title:$t, html:$h}')" | jq -r .url)
    gh pr comment "$PR" --body "Analysis: $URL"
```

The publish happens whether or not anyone is watching, which is the only
property that matters for an asynchronous agent. See
[GitHub Actions reports](/ci/github-actions-html-report) for the full pattern
and [the API docs](/docs/api) for the request shape.

## Why the document needs its own address

- **The audience is not the repo.** Security, product and support cannot read a
  branch, and asking them to is how a good analysis dies unread.
- **It renders.** Tables and diffs survive; a collapsed file preview in a PR
  does not.
- **Comments anchor to the claim.** Feedback lands on the risk being disputed
  rather than on a line of a file — see
  [commenting on HTML](/comment-on-html).
- **The link outlives the branch.** Merged, closed or abandoned, the page still
  resolves.

## Worth knowing

- **`reports:write` as a repo secret** — see
  [scoped tokens](/agents/scoped-tokens-for-ai-agents).
- **5 MB of HTML** per report body.
- **Reports are snapshots.** Nothing re-runs when a reviewer opens one.

## Try it

Free — unlimited reports, commenters and revisions.

**[See the CI guides →](/ci)**

### Related

- [Where should my agent post?](/agents/where-should-my-agent-post)
- [Share Devin output](/agents/share-devin-output) ·
  [Share OpenHands output](/agents/share-openhands-output) ·
  [Share Copilot output](/agents/share-copilot-output)
- [GitHub Actions HTML reports](/ci/github-actions-html-report) ·
  [The API](/docs/api)
