Guides
Use webctx with agents
Practical copy-paste workflows for research, repository understanding, code review, CI debugging, and documentation work.
The basic pattern
webctx is most useful as a context feeder:
find useful URLs → read the exact thing you need → hand the text to an agent
The output is plain markdown, so there is no special integration step.
Understand an unfamiliar repository
webctx read-link https://github.com/amxv/webctx
webctx read-link https://github.com/amxv/webctx/tree/main/internal/app
webctx read-link 'https://github.com/amxv/webctx/blob/main/internal/app/tools.go#L130-L220'
webctx read-link https://github.com/amxv/webctx/issues/6
Why this works:
- the repository root gives orientation
- the tree shows one part of the codebase
- the line link narrows source before it reaches the model
- the Issue adds product/history context
You get a useful sequence of evidence without asking the agent to scrape GitHub pages itself.
Review a Pull Request
webctx read-link https://github.com/amxv/webctx/pull/15
webctx read-link https://github.com/amxv/webctx/pull/15/files
webctx read-link https://github.com/amxv/webctx/pull/15/checks
If a specific review comment matters, use its copied link:
webctx read-link 'https://github.com/cli/cli/pull/13250#discussion_r3118513169'
That gives the agent the thread it needs instead of a giant PR page.
Debug a failing CI job
Start with the run:
webctx read-link https://github.com/<owner>/<repo>/actions/runs/<run-id>
Then open the failed job URL returned by the run:
webctx read-link https://github.com/<owner>/<repo>/actions/runs/<run-id>/job/<job-id>
This is especially useful for coding agents because the job read stays scoped to one log rather than filling context with every job in the workflow.
Find why a line changed
webctx read-link https://github.com/<owner>/<repo>/commits/main/path/to/file.go
webctx read-link https://github.com/<owner>/<repo>/commit/<sha>
webctx read-link https://github.com/<owner>/<repo>/blame/main/path/to/file.go
Use history to find candidate commits, open the relevant commit, then use blame when you need line-by-line ownership. Blame needs GitHub auth.
Research current documentation
webctx search "OpenAI Apps SDK MCP annotations"
webctx read-link https://developers.openai.com/apps-sdk/reference
Use search for discovery, not as the final context. Read the primary page once you find it.
Audit a whole docs site
webctx map-site https://some-docs.example
webctx read-link https://some-docs.example/getting-started
webctx read-link https://some-docs.example/api/reference
webctx read-link https://some-docs.example/changelog
An agent can inspect the URL map first and choose the pages relevant to the task instead of recursively crawling everything.
Follow a GitHub conversation
webctx read-link https://github.com/<owner>/<repo>/issues/<number>
webctx read-link https://github.com/<owner>/<repo>/pull/<number>
webctx read-link https://github.com/<owner>/<repo>/discussions/<number>
Issue, PR, and Discussion roots are useful navigation surfaces rather than instructions to expand every child page. Large roots keep compact previews/indexes and return copied GitHub URLs for exact comments or threads. Discussions need GitHub auth for the structured reader.
Keep agent context small
Prefer the most specific URL you have:
# Better than the whole file
webctx read-link 'https://github.com/<owner>/<repo>/blob/main/file.go#L80-L120'
# Better than the whole PR
webctx read-link 'https://github.com/<owner>/<repo>/pull/42#discussion_r123456'
# Better than every Discussion reply
webctx read-link 'https://github.com/<owner>/<repo>/discussions/42#discussioncomment-123456'
# Better than every Gist file/comment
webctx read-link 'https://gist.github.com/<gist-id>#gistcomment-123456'
# Better than every Actions log
webctx read-link https://github.com/<owner>/<repo>/actions/runs/123/job/456
The easiest way to save tokens is often to narrow the source before the model sees it.
For normal pageable lists, follow the printed Next/Previous GitHub URL; webctx renders every row from its compact provider page, so pagination does not skip a hidden tail. When a root/aggregate overview reports local omission instead, use the exact child/subresource URLs it prints. Do not invent a webctx --page, --all, or “full” switch: copied provider URLs are the navigation contract. Use an explicit .diff/.patch URL when bulk raw change text is actually what the task needs.
Let the URL do the routing
You do not need an agent prompt full of GitHub parsing rules. Teach the agent one command:
webctx read-link <url>
Then let it pass through the exact GitHub URLs it discovers—repository, source, Issue, PR, review thread, diff, check, commit, Actions job, release, Gist, Project, and so on.
That is the core advantage: the agent can keep working in URLs it already understands while webctx turns those URLs into cleaner context.