Skip to content

Commit 7978f48

Browse files
dem-extra1claude
andauthored
docs(agents): extend the coding-agent catalog to cover agentic platforms (closes #86) (#215)
* start: survey agentic AI platforms (closes #86) * docs(agents): survey agentic platforms by execution model (closes #86) Issue #86 asked for a survey of the popular agentic platforms, naming Cursor, OpenCode, Claude Code, Codex, Antigravity, Jules, and Ollama. The catalog (#196) and harness landscape (#95) already describe most of them, but the platform table in coding-agent-platforms.qmd had no row for OpenCode, Cline, Kiro, Warp, OpenHands, Devin, or Ollama, and nothing explained the one dimension that decides where a reader's code goes: whether the agent runs in a hosted sandbox, on the local checkout, or as an orchestration layer over other agents. Extend the existing fragments rather than add a parallel survey: add the missing rows with citations to the vendor pages fetched on 2026-09-09, add a "Where the agent runs" section that sorts every platform into the three execution models and notes that windsurf.com now redirects to Devin Desktop, and mention OpenCode alongside Aider and OpenHands in the Ollama harness list, since it is the stack the site's own OpenCode sections document. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * docs(platforms): cite the Devin row and add four wordlist entries The Spellcheck job failed on `Bitbucket`, `DevOps`, `webhooks`, and `rebranding`, which the new prose introduced without wordlist entries (only the singular `webhook` and the past-tense `rebranded` were listed). The Devin row was the one new platform row without a citation; it now cites the Devin documentation's introduction page, fetched 2026-09-09. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * docs(platforms): finish the truncated "token-cost characteristics" phrase Copilot read "token-cost character" as a truncation, which it was. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * fix(bib): rebuild references.bib as a clean union after the main sync The union resolver used for the sync dropped the blank line between every pre-existing entry and truncated one entry, which made pandoc reject the file and failed the build. The file is now rebuilt from the two parent versions: main's entries in main's order and formatting, then this branch's new entries appended, validated with pandoc. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
1 parent 0d2052f commit 7978f48

4 files changed

Lines changed: 148 additions & 3 deletions

File tree

chapters/ai-tools/catalog-coding-agents.qmd

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ with dedicated agent harnesses (detailed setup and hardware sizing are covered i
3131
@sec-ai-offline):
3232

3333
- **Terminal Orchestrators**:
34-
Harnesses like **[Aider](https://aider.chat/)** and **[OpenHands](https://github.com/All-Hands-AI/OpenHands)**
34+
Harnesses like **[OpenCode](https://opencode.ai)** (see @sec-ai-opencode-ollama),
35+
**[Aider](https://aider.chat/)**, and **[OpenHands](https://github.com/All-Hands-AI/OpenHands)**
3536
(formerly OpenDevin) connect directly to Ollama endpoints running open-weight
3637
coding models (such as `Qwen2.5-Coder`, `DeepSeek-Coder-V2`, or `Llama 3.3`),
3738
managing git commits, multi-file edits, and automated test-and-repair loops.

chapters/ai-tools/coding-agent-platforms.qmd

Lines changed: 58 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,20 @@ The following catalog is a starting point rather than an endorsement:
1010
|---|---|---|
1111
| [GitHub Copilot coding agent](https://github.com/features/copilot/agents) | GitHub issues and pull requests | Assign an issue; review the resulting pull request |
1212
| [OpenAI Codex](https://openai.com/codex/) | Cloud tasks, app, and command line | Delegate a task in an isolated environment or work locally |
13-
| [Google Jules](https://jules.google.com/) | Cloud coding agent | Connect a repository and review the proposed changes |
13+
| [Google Jules](https://jules.google.com/) [@jules_docs] | Cloud coding agent | Connect a repository and review the proposed changes |
1414
| [Google Antigravity](https://antigravity.google/) | Agentic development platform | Coordinate coding tasks in a managed development workspace |
1515
| [Claude Code](https://www.anthropic.com/claude-code) | Terminal, IDE, and cloud | Work interactively or delegate work that returns a pull request |
1616
| [Gemini CLI](https://github.com/google-gemini/gemini-cli) | Command line | Inspect, edit, and test the current local checkout |
17-
| [Cursor](https://www.cursor.com/) | IDE | Edit interactively with path-scoped `.cursor/rules` context |
17+
| [Cursor](https://www.cursor.com/) [@cursor_cloud_agents] | IDE and cloud agents | Edit interactively with path-scoped `.cursor/rules` context, or hand a task to a cloud agent that pushes a branch |
1818
| [Aider](https://aider.chat/) | Command line | Pair locally with explicit files and Git commits |
1919
| [GitKraken Kepler](https://gitkraken.com/kepler) | Agentic development environment (desktop) | Start a Task from an issue, PR, or idea; run multiple agents in parallel isolated worktrees via reusable Actions; review per-branch diffs and open PRs |
20+
| [OpenCode](https://opencode.ai) [@opencode_docs] | Terminal, desktop app, and IDE extension | Bring your own model provider (including local endpoints; see @sec-ai-opencode-ollama) and edit the local checkout |
21+
| [Cline](https://cline.bot/) [@cline_site] | VS Code extension, CLI, and SDK | Plan, then act with per-step approval; bring your own key, including Ollama |
22+
| [Kiro](https://kiro.dev/) [@kiro_docs] (AWS) | IDE, CLI, web, and mobile | Spec-driven tasks locally, or delegate a web task that opens a pull request |
23+
| [Warp](https://docs.warp.dev/) [@warp_docs] | Terminal app, standalone CLI, and cloud agents | Approve actions locally, or trigger cloud agents from Slack, Linear, or GitHub webhooks |
24+
| [OpenHands](https://docs.openhands.dev/) [@openhands_docs] | Browser client, managed cloud, self-hosted backend, and CLI | Run headless or hosted; self-host when code must stay on your infrastructure |
25+
| [Devin](https://devin.ai/) [@devin_docs] (Cognition) | Cloud agent and desktop editor | Delegate a task to an isolated cloud machine and review the pull request (see @sec-ai-harness-landscape) |
26+
| [Ollama](https://ollama.com/) [@ollama_site] | Local model runner (not an agent) | Serve open-weight models to any of the harnesses above (see @sec-ai-ollama-agents) |
2027

2128
Kepler is not an agent itself but an orchestration layer.
2229
It hosts agents you already use
@@ -27,6 +34,55 @@ Where a single-agent platform handles one repo at a time,
2734
a Kepler Task can span many repos,
2835
and its Agent Graph visualizes every session, turn, tool call, and subagent live.
2936

37+
#### Where the agent runs {#sec-ai-platform-execution-models}
38+
39+
The platforms above sort into three execution models
40+
(measured 2026-09-09).
41+
The model decides where your code is copied,
42+
what the agent can reach,
43+
and how its work comes back to you.
44+
45+
- **Hosted sandbox.**
46+
The vendor provisions an isolated machine,
47+
clones the repository into it,
48+
and returns a branch or pull request.
49+
Jules clones the repository into a virtual machine and submits a pull request after you approve its plan [@jules_docs];
50+
Cursor cloud agents clone from GitHub, GitLab, Azure DevOps, or Bitbucket,
51+
work on a separate branch, and push it back [@cursor_cloud_agents];
52+
Kiro web tasks and Warp cloud agents follow the same shape [@kiro_docs; @warp_docs],
53+
as do the Copilot coding agent, Codex cloud tasks, Devin, and OpenHands Cloud.
54+
Nothing runs on your machine,
55+
so the questions are what the sandbox can reach
56+
and whether the vendor's retention terms suit the repository.
57+
- **Local checkout.**
58+
The agent runs on your workstation against the files already there,
59+
in a terminal (Claude Code, Codex CLI, OpenCode, Aider, Gemini CLI, Warp)
60+
or inside an editor (Cursor, Cline, Kiro, Copilot in VS Code).
61+
Code stays put,
62+
and the agent inherits whatever credentials and network access your shell has,
63+
which is why @sec-ai-best-practices asks for approval gates and a sandbox.
64+
Pairing one of these with Ollama keeps the model local too [@ollama_site],
65+
at the cost of the hardware described in @sec-ai-offline.
66+
- **Orchestration layer.**
67+
Kepler, Kiro Crew, and the Cline Kanban surface do not add a model of their own;
68+
they run several of the agents above in parallel worktrees or sessions
69+
and present the results for review.
70+
Reach for one only once a single agent is no longer the bottleneck
71+
([when orchestration helps](agent-orchestration.qmd#sec-orch-when)).
72+
73+
Several vendors now ship all three,
74+
so the platform name alone no longer tells you where the code goes:
75+
Claude Code, Codex, Cursor, Kiro, and Warp each offer a local surface and a hosted one.
76+
Check the execution model of the specific surface you enable.
77+
The Windsurf editor is a naming trap of the same kind:
78+
`windsurf.com` now redirects to Devin Desktop,
79+
Cognition's rebranding of that editor (measured 2026-09-09; see @sec-ai-harness-landscape).
80+
81+
For licensing, token-cost characteristics, and a decision table for choosing among these tools,
82+
see @sec-ai-harness-landscape;
83+
for the open-weight and fully local end of the spectrum,
84+
see @sec-ai-catalog-coding-agents.
85+
3086
Before connecting any platform, check:
3187

3288
- whether code runs locally or in a vendor-managed environment;

inst/WORDLIST

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ Battlestar
3131
Belcak
3232
BenchLM
3333
Bing
34+
Bitbucket
3435
Bot's
3536
CAPTCHAs
3637
CHANGELOG
@@ -75,6 +76,8 @@ Daytona
7576
DeepSeek
7677
DeepSeek-R1
7778
DeepSeekMath
79+
DevOps
80+
Devin
7881
Devstral
7982
Docker
8083
DuckDB
@@ -145,6 +148,7 @@ Karpathy's
145148
Keanu
146149
Kepler
147150
Kimi
151+
Kiro
148152
Kong
149153
Kotlin
150154
Kubrick
@@ -316,6 +320,7 @@ Wachowskis
316320
Wakatime
317321
WhatsApp
318322
Wiggum
323+
Windsurf
319324
Workspaces
320325
YAGNI
321326
YAML
@@ -503,6 +508,7 @@ rStar
503508
reachability
504509
rebase
505510
rebranded
511+
rebranding
506512
reflow
507513
refspec
508514
renderer
@@ -589,6 +595,7 @@ wakeup
589595
wakeup's
590596
walkthrough
591597
webhook
598+
webhooks
592599
workspace's
593600
workspaces
594601
workstreams

references.bib

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1186,3 +1186,84 @@ @misc{perplexity_sonar_deep_research
11861186
url = {https://docs.perplexity.ai/docs/sonar/models/sonar-deep-research},
11871187
note = {Accessed 2026-09-09}
11881188
}
1189+
1190+
@misc{opencode_docs,
1191+
title = {Intro: AI coding agent built for the terminal},
1192+
author = {{OpenCode}},
1193+
year = {2026},
1194+
howpublished = {Documentation},
1195+
url = {https://opencode.ai/docs/},
1196+
note = {Accessed 2026-09-09}
1197+
}
1198+
1199+
@misc{cline_site,
1200+
title = {Cline: AI Coding, Open Source and Open Choice},
1201+
author = {{Cline}},
1202+
year = {2026},
1203+
howpublished = {Product page},
1204+
url = {https://cline.bot/},
1205+
note = {Accessed 2026-09-09}
1206+
}
1207+
1208+
@misc{kiro_docs,
1209+
title = {Kiro Documentation},
1210+
author = {{Amazon Web Services}},
1211+
year = {2026},
1212+
howpublished = {Documentation},
1213+
url = {https://kiro.dev/docs/},
1214+
note = {Accessed 2026-09-09}
1215+
}
1216+
1217+
@misc{warp_docs,
1218+
title = {Getting started with Warp},
1219+
author = {{Warp}},
1220+
year = {2026},
1221+
howpublished = {Documentation},
1222+
url = {https://docs.warp.dev/},
1223+
note = {Accessed 2026-09-09}
1224+
}
1225+
1226+
@misc{openhands_docs,
1227+
title = {OpenHands documentation: Introduction},
1228+
author = {{OpenHands}},
1229+
year = {2026},
1230+
howpublished = {Documentation},
1231+
url = {https://docs.openhands.dev/},
1232+
note = {Accessed 2026-09-09}
1233+
}
1234+
1235+
@misc{cursor_cloud_agents,
1236+
title = {Cloud Agents},
1237+
author = {{Cursor}},
1238+
year = {2026},
1239+
howpublished = {Documentation},
1240+
url = {https://cursor.com/docs/cloud-agent},
1241+
note = {Accessed 2026-09-09}
1242+
}
1243+
1244+
@misc{jules_docs,
1245+
title = {Getting started with Jules},
1246+
author = {{Google}},
1247+
year = {2026},
1248+
howpublished = {Documentation},
1249+
url = {https://jules.google.com/docs/},
1250+
note = {Accessed 2026-09-09}
1251+
}
1252+
1253+
@misc{ollama_site,
1254+
title = {Ollama},
1255+
author = {{Ollama}},
1256+
year = {2026},
1257+
howpublished = {Product page},
1258+
url = {https://ollama.com/},
1259+
note = {Accessed 2026-09-09}
1260+
}
1261+
1262+
@misc{devin_docs,
1263+
title = {Introducing Devin},
1264+
author = {{Cognition}},
1265+
year = {2026},
1266+
howpublished = {Documentation},
1267+
url = {https://docs.devin.ai/get-started/devin-intro},
1268+
note = {Accessed 2026-09-09}
1269+
}

0 commit comments

Comments
 (0)