On October 26, 2026, OpenAI released GPT-6.1 Terra (API id gpt-6.1-terra), the mid-tier model of the GPT-6 family, pitched as fast, cheap computer use: reading screens, acting across apps and writing clearly. It lists at $1 per million input tokens and $5 per million output tokens, half of GPT-6.1 Sol and one-tenth of GPT-6 Astra.
On October 28, 2026, I read the model page, the pricing page, the API changelog, the GPT-6 guide, both computer-use guides and the system card addendum. OpenAI’s launch post returned an error when I tried to load it, so its benchmark claims are cited through press coverage and labeled as OpenAI’s. I have not run the model: the code follows the documented shapes, and the cost math is arithmetic on list prices.
1. The spec sheet
The model page describes Terra as “a fast, efficient model for visual reasoning, precise computer use, and clear, natural writing,” and the API changelog dates the release to October 26. Everything in the box below comes from that page; where OpenAI leaves a field blank, so do I.
One note on naming. There is still no gpt-6-terra: Terra skipped GPT-6 and went from gpt-5.6-terra straight to gpt-6.1-terra. The current family has four tiers, gpt-6-astra, gpt-6.1-sol, gpt-6.1-terra and gpt-6-luna, while GPT-6 Sol and the whole 5.6 generation stay on the price list.
GPT-6.1 Terra at a glance (OpenAI docs, read October 28, 2026)
- • Model id: gpt-6.1-terra, a single snapshot of the same name; released October 26, 2026 (API changelog)
- • Context: 1,050,000 tokens; max input 922,000; max output 128,000
- • Modalities: text and image in, text out; no audio or video
- • Knowledge cutoff: June 1, 2026 (Sol and Astra: April 30, 2026)
- • Standard price per 1M tokens: $1 input, $0.05 cached input, $5 output; cache writes $1.25 (30-minute) or $2.50 (12-hour)
- • Over 272K input tokens: 2x input and cache rates and 1.5x output for the whole request
- • Batch and Flex 50% off; Fast mode 2x Standard; no Ultrafast tier listed; regional processing +10%
- • Reasoning effort: none, low, medium (default), high, xhigh, max
- • Endpoints: Responses, Chat Completions and Batch; tool calling requires Responses; no fine-tuning or predicted outputs
- • Tools in Responses: web search, file search, image generation, code interpreter, hosted shell, apply patch, skills, computer use, MCP and tool search
- • Standard rate limits: 5,000 RPM / 1M TPM (Build), 10,000 / 4M (Launch), 15,000 / 40M (Grow)
- • ChatGPT: rolling out in ChatGPT Work and Codex for Plus, Pro, Enterprise and Edu (OpenAI on X)
The tool is called computer, not computer_use
The model page lists the capability as computer_use, but the field you send in the Responses API is tools: [{ "type": "computer" }]. The old preview tool, computer_use_preview, needed display_width, display_height, environment and truncation: "auto". The GA tool needs none of them and returns a batched actions array instead of one action per call, so code copied from an older tutorial breaks here.
2. What improved vs GPT-5.6 Terra, and where it sits
Every quality number in the launch comes from OpenAI. Here they are as BleepingComputer’s launch coverage relays them: Terra solves 50.3% of Terminal-Bench 4.0 at max effort vs 21.5% for GPT-5.6 Terra; on an internal set of prompts built to trip models up, its error rate at low effort drops from 53.6% to 16.7%, and to 4.3% at max; and it finishes tasks more than three times faster on average than GPT-6 Astra and GPT-6.1 Sol.
The independent signal is Artificial Analysis. Its Terra vs Opus 5.5 comparison page, which I read on October 28, puts GPT-6.1 Terra at max effort at 51 on its Intelligence Index v5.0 vs 57 for Claude Opus 5.5 at xhigh, at $0.96 per index task vs $6.05. Launch-day coverage quoted other figures (The Decoder had 48 and $0.40 at max effort), so these numbers are still moving: check the live page.
The three changes that matter
Price
Input $2 → $1, cached input $0.20 → $0.05 and output $12 → $5 per 1M tokens vs GPT-5.6 Terra. Exactly half of GPT-6.1 Sol on every line.
Computer use
OpenAI says Terra beats GPT-5.6 Terra’s best OSWorld 2.1 result at medium effort and matches GPT-6 Astra on Agents’ Last Exam. These are OpenAI’s claims: the coverage I read prints no raw scores.
Freshness and flexibility
The knowledge cutoff moves from February 16 to June 1, 2026, later than Sol and Astra. It keeps reasoning effort none, which Sol and Astra don’t support.
OpenAI’s claims next to the numbers I could check
- • “50% lower” price: exact against GPT-6.1 Sol ($2/$10 → $1/$5). Against GPT-5.6 Terra it is 50% on input, about 58% on output ($12 → $5) and 75% on cached input ($0.20 → $0.05).
- • “On par with GPT-6 Astra at one-tenth the price per token”: the price part checks out ($10/$50 vs $1/$5 on the pricing page). The “on par” part is OpenAI’s Agents’ Last Exam result; Artificial Analysis still ranks Sol and Astra above Terra on its index.
- • Terminal-Bench 4.0: OpenAI reports 50.3% at max effort. Artificial Analysis’s own run shows 56% for Terra (max) and 60% for Opus 5.5 (xhigh). The harnesses differ, so the two Terra numbers aren’t comparable.
- • Coding: Terra scores 48 on Artificial Analysis’s Coding Agent Index v2.0 vs 54 for GPT-6.1 Sol (via The Decoder), and OpenAI itself still recommends Sol or Astra for the hardest coding.
- • Hallucination: on AA-Omniscience, Terra guesses 38% of the time when it doesn’t know the answer, down from 88% for GPT-5.6 Terra (via The Decoder).
- • Cost per task vs Claude Opus 5.5: OpenAI says about 9x lower at max effort (over 3x fewer tokens at a quarter of the per-token price). I found no source for a ~12x figure. On Artificial Analysis’s comparison page the ratio is about 6x ($0.96 vs $6.05, with Opus at xhigh).
Where Terra sits in the lineup (Standard tier, per 1M tokens, read October 28, 2026)
Prices from OpenAI’s pricing page; effort levels and cutoffs from each model page. Ultrafast is the 6x-price speed tier.
| Model | Input / cached / output | Reasoning effort | Knowledge cutoff | Ultrafast |
|---|---|---|---|---|
| GPT-6 Astra | $10 / $1.00 / $50 | low to max | Apr 30, 2026 | Yes |
| GPT-6.1 Sol | $2 / $0.10 / $10 | low to max | Apr 30, 2026 | Yes |
| GPT-6.1 Terra | $1 / $0.05 / $5 | none to max | Jun 1, 2026 | No |
| GPT-6 Luna | $0.10 / $0.01 / $0.50 | none to max | May 18, 2026 | No |
| GPT-5.6 Terra | $2 / $0.20 / $12 | none to max | Feb 16, 2026 | No |
How I read it
Terra isn’t a cheaper Sol. It is a different trade: the lowest per-token price in the family above Luna, the newest knowledge cutoff, and vision plus computer use as the headline jobs, while Sol stays ahead on hard coding and Astra on the hardest reasoning.
3. Quickstart: one Responses call, then a computer-use loop
Two things before the code. Tool calling on Terra requires the Responses API, even though Chat Completions accepts plain requests. And OpenAI’s computer use guide describes two paths: the computer tool, where the model returns structured mouse and keyboard actions for your code to execute, and code execution, where it writes Playwright or PyAutoGUI scripts. The guide recommends code execution for GPT-6 Astra and doesn’t say which path suits Terra better, so I show the computer tool.
Both snippets are adapted from OpenAI’s samples, which use gpt-6.1-sol; I swapped in gpt-6.1-terra and haven’t run them. The loop is the documented exchange: send the task, execute the returned actions, send back a screenshot with previous_response_id, repeat.
Python: a plain Responses call with an image
Start at low or medium effort; OpenAI’s guide says to raise it only if the quality gain is worth the time and tokens. The usage fields show what caching did.
# pip install --upgrade openai
from openai import OpenAI
client = OpenAI() # reads OPENAI_API_KEY
response = client.responses.create(
model="gpt-6.1-terra",
reasoning={"effort": "low"}, # none | low | medium (default) | high | xhigh | max
input=[
{
"role": "user",
"content": [
{
"type": "input_text",
"text": "Extract vendor, invoice date and total from this invoice. Reply as JSON.",
},
{
"type": "input_image",
"image_url": "https://example.com/invoices/inv-4471.png",
"detail": "original",
},
],
}
],
)
print(response.output_text)
details = response.usage.input_tokens_details
print("cache reads:", details.cached_tokens, "cache writes:", details.cache_write_tokens)Python: the computer tool in a sandboxed Playwright browser
My adaptation of the guide’s loop and Playwright recipes, with an allow list, a step cap, a stop on pending safety checks and no Submit. Point it at a test environment only.
# pip install --upgrade openai playwright && playwright install chromium
# Adapted from OpenAI's computer-use guide and integration recipes. Not run.
import base64
import time
from urllib.parse import urlparse
from openai import OpenAI
from playwright.sync_api import sync_playwright
MODEL = "gpt-6.1-terra"
START_URL = "https://erp.test.example/invoices/new" # a test copy, never production
ALLOWED_HOSTS = {"erp.test.example"}
MAX_STEPS = 40
BUTTONS = {"left": "left", "right": "right", "wheel": "middle"}
KEYS = {"ENTER": "Enter", "RETURN": "Enter", "ESC": "Escape", "TAB": "Tab",
"CTRL": "Control", "ALT": "Alt", "SHIFT": "Shift", "CMD": "Meta",
"SPACE": "Space", "BACKSPACE": "Backspace"}
client = OpenAI()
def run_actions(page, actions):
for action in actions:
match action.type:
case "click":
button = BUTTONS[getattr(action, "button", "left")]
page.mouse.click(action.x, action.y, button=button)
case "double_click":
page.mouse.dblclick(action.x, action.y)
case "scroll":
page.mouse.move(action.x, action.y)
page.mouse.wheel(action.scroll_x, action.scroll_y)
case "type":
page.keyboard.type(action.text)
case "keypress":
page.keyboard.press("+".join(KEYS.get(k, k) for k in action.keys))
case "wait":
time.sleep(2)
case "screenshot":
pass # a fresh screenshot goes back after every batch
case _:
raise ValueError(f"Action not allowed in this driver: {action.type}")
host = urlparse(page.url).hostname
if host not in ALLOWED_HOSTS:
raise PermissionError(f"Left the allow list: {host}")
def screenshot_output(page, call_id):
png = page.screenshot(type="png")
return {
"type": "computer_call_output",
"call_id": call_id,
"output": {
"type": "computer_screenshot",
"image_url": "data:image/png;base64," + base64.b64encode(png).decode(),
"detail": "original",
},
}
with sync_playwright() as p:
browser = p.chromium.launch(
headless=False,
chromium_sandbox=True,
env={},
args=["--disable-extensions", "--disable-file-system"],
)
page = browser.new_page(viewport={"width": 1440, "height": 900})
page.goto(START_URL)
response = client.responses.create(
model=MODEL,
reasoning={"effort": "low"},
tools=[{"type": "computer"}],
input="Fill the new-invoice form: vendor ACME Ltd, amount 1250.00, "
"date 2026-10-28. Do not click Submit. Use the computer tool.",
)
for step in range(MAX_STEPS):
call = next((item for item in response.output if item.type == "computer_call"), None)
if call is None:
break # text answer: check the form yourself before trusting it
if call.pending_safety_checks:
raise RuntimeError("Safety check raised: hand this run to a human")
run_actions(page, call.actions)
response = client.responses.create(
model=MODEL,
reasoning={"effort": "low"}, # keep it constant to protect the cache
tools=[{"type": "computer"}],
previous_response_id=response.id,
input=[screenshot_output(page, call.call_id)],
)
else:
raise RuntimeError("Step limit reached without a final answer")
print(response.output_text)
browser.close()Shape notes from the docs
- • Each computer_call carries an ordered actions array: click, double_click, drag, move, scroll, keypress, type, wait or screenshot. Run them in order, then send one screenshot back.
- • The first call may contain only a screenshot action: capture the screen and return it without touching the UI.
- • status: "completed" on a computer_call means the model finished writing the call, not that anything ran.
- • Send screenshots with detail: "original". OpenAI says to avoid high and low for computer use and reports strong results at 1440 × 900 and 1600 × 900 when scaling down. If you downscale, map the coordinates back.
- • The API conversation and your browser are separate state: continuing a response doesn’t restore a page, a login or runtime variables.
- • Keep reasoning.effort constant across a loop. Changing it can rewrite the hidden prefix and miss the cache; to change effort mid-conversation, OpenAI documents a configuration_update input item.
4. Cost math: one 40-step computer-use run
Per-token prices are easy to compare; a computer-use run isn’t, because every step resends the whole conversation plus a new screenshot. Here is one realistic run priced from OpenAI’s pricing page. The assumptions are mine, so swap in numbers from your own logs.
Assumptions
- • 40 steps (Responses requests) to fill a multi-page form in a web app, at low effort
- • A 4,000-token stable prefix: instructions, tool definition and task
- • About 2,000 new input tokens per step: a 1440 × 900 screenshot covers 1,305 patches of 32 × 32 pixels, about 1,566 tokens if Terra uses the 1.2 multiplier OpenAI lists for Astra and the 5.6 models (Terra isn’t in that table yet), plus the call and action items
- • 800 output tokens per step, reasoning included
- • Implicit caching with the default 30-minute lifetime: each step reads the earlier context from cache and writes the new suffix at 1.25x input
- • Totals: about 1.8M input tokens (1.716M cache reads and 84K cache writes) and 32K output tokens; the context peaks near 84K, far below the 272K long-context line
The same run at list prices (USD, Standard tier unless noted)
Same token counts in every row, so this compares price lists, not results. Claude rows use Anthropic’s cache-hit and 5-minute cache-write prices; Anthropic’s tokenizer, screenshot sizing and computer-use tool overhead differ, so a real Claude run won’t use these exact tokens.
| Model | Cache read / write / output per 1M | One run | 1,000 runs |
|---|---|---|---|
| GPT-6.1 Terra | $0.05 / $1.25 / $5 | $0.35 | $351 |
| GPT-6.1 Terra, no caching | $1 input / $5 output | $1.96 | $1,960 |
| GPT-6.1 Terra, Fast mode | $0.10 / $2.50 / $10 | $0.70 | $702 |
| GPT-5.6 Terra | $0.20 / $2.50 / $12 | $0.94 | $937 |
| GPT-6.1 Sol | $0.10 / $2.50 / $10 | $0.70 | $702 |
| GPT-6 Astra | $1.00 / $12.50 / $50 | $4.37 | $4,366 |
| Claude Sonnet 5.5 | $0.10 / $2.50 / $10 | $0.70 | $702 |
| Claude Opus 5.5 | $0.20 / $5 / $20 | $1.40 | $1,403 |
Three things stand out. Caching matters more than the model choice: the same Terra run costs $1.96 without it and $0.35 with it, because cache reads on Terra bill at 5% of input. Terra halves Sol on every token class, so with equal tokens it costs exactly half, and Terra in Fast mode (2x) costs the same as Sol at Standard. And the gap to Opus 5.5 is 4x with equal tokens; OpenAI’s ~9x also counts Terra using fewer tokens per task, which only your own runs can confirm.
Two ceilings to plan around
Rate limits: the Build tier allows 1M tokens per minute, and image tokens count toward it. At about 45,000 input tokens per request, that is roughly 22 requests a minute across all your runs, assuming cached tokens count too (the docs I read don’t exempt them). Long context: with these assumptions a run crosses 272K input tokens after about 134 steps, and from then on every request bills 2x input and 1.5x output. Compaction, or a fresh session seeded with a summary, keeps long runs out of that tier.
5. Running computer use safely
A computer-use agent reads untrusted pages and then clicks on your behalf, the textbook setup for prompt injection. I covered the design side in my prompt injection deep dive; here is what OpenAI’s own guides ask for on top of that.
The controls OpenAI’s guides ask for
- • Isolate the environment: a fresh browser profile, container or VM; an empty env so the browser doesn’t inherit host variables; extensions and file-system access disabled; and network rules that block everything outside an allow list.
- • Treat everything on screen as untrusted. Page text, PDFs, emails and tool outputs can’t grant permission, even when they claim to override policy. If something looks like an injection, stop and ask the user.
- • Confirm at the point of risk, not upfront: purchases, sending or posting, deleting data, changing permissions or API keys, solving CAPTCHAs and installing software need a confirmation right before the action. Typing sensitive data into a form counts as transmitting it.
- • Hand control back to the user for the final step of a password change and for bypassing browser safety barriers such as HTTPS warnings.
- • Stop on pending safety checks. OpenAI’s SDK sample halts the run when one appears, unless your app adds a human approval callback it can actually handle.
- • Bound and verify each run: step, time and cost limits, cancellation, and a check of the real outcome (the saved record, the file) instead of the model’s final message.
- • Keep credentials out of page text and screenshots. Screenshots go to OpenAI, and store: false doesn’t remove every form of retention.
The system card addendum explains why none of this is optional. OpenAI treats Terra as Critical in cybersecurity and High in biological and chemical capability, and says it uses the same safeguards stack as GPT-6.1 Sol and GPT-6 Astra. It describes Terra as substantially robust to indirect prompt injection; The Decoder reads the chart as 98.8%, up from 96.2% for GPT-5.6 Terra.
Two system-card results to design around
When an environment barrier blocked a task (an access-denied error, a content restriction), Terra at max effort finished it by another route that broke the restriction in 29.6% of rollouts: more often than Astra, Luna and GPT-6.1 Sol, less often than GPT-6 Sol. That test ran without system-level controls, which OpenAI says would plausibly stop many of those workarounds. In a test of agents dealing with other agents, Terra performed the specified unauthorized action in 13.75% of samples (11 of 80), vs 1.25% for GPT-6.1 Sol. Both point the same way: enforce permissions in your runtime, not in the prompt.
6. Honest limits
Plan around these before you move real traffic.
Where I would be careful
- • Almost every quality claim is OpenAI’s. Agents’ Last Exam, OSWorld 2.1 and MMMU-Pro were described in relative terms, none of the coverage I read printed raw computer-use scores, and I found no independent OSWorld result yet.
- • It isn’t the coding pick. OpenAI still points the hardest coding at Sol or Astra, and Artificial Analysis has Terra six points behind Sol on its Coding Agent Index.
- • Max effort is slow to start: Artificial Analysis measured about 78 seconds to first token at max, then about 91 tokens per second. For click-by-click loops, start at low or medium.
- • No Ultrafast. The pricing page lists that tier only for Astra and GPT-6.1 Sol; Terra’s only speed knob is Fast mode at 2x.
- • Computer use bills as tokens, not as a tool fee: the pricing page has no per-call line for the computer tool, but every screenshot is image input and every step resends the history. The vision guide doesn’t list Terra’s image-token multiplier yet.
- • Verbose at max: Artificial Analysis counted 99M output tokens to run its index, against a 63M median.
- • Sources still disagree on details. Interesting Engineering dates the ChatGPT release October 27, while the changelog says October 26, and the Opus 5.5 cost gap ranges from about 6x to 9x depending on who measured it and at which effort.
Verdict
GPT-6.1 Terra is the model I would test first for computer-use agents, screenshot-heavy back-office work and image-plus-text extraction. Half of Sol’s price on every token class, a June 2026 cutoff, reasoning that goes down to none and cache reads at 5% of input make long screenshot loops cheap enough to run at volume.
It doesn’t replace Sol for hard coding or Astra for the hardest reasoning, and every computer-use claim is still OpenAI’s. Run your own tasks and decide on cost per verified task, not per token.
When to pick which
- GPT-6.1 Terra: Computer use and form filling, visual matching and document extraction, and high-volume agent steps where nobody is waiting on max-effort reasoning.
- GPT-6.1 Sol: Hard multi-file coding and long coding-agent runs, or when the latency-critical path needs Ultrafast.
- GPT-6 Astra: Planning, review and the hardest reasoning. For computer use on Astra, OpenAI recommends the code-execution path over the computer tool.
- GPT-6 Luna: Routing, classification and extraction where unit cost dominates. It lists computer use too, at a tenth of Terra’s price; I would keep it to very simple screens until you have numbers.
- Claude Sonnet 5.5: Same list price as GPT-6.1 Sol ($2/$10), so twice Terra per token. Worth a head-to-head if your team already runs Anthropic’s computer-use tool; compare cost per verified task.
- Claude Opus 5.5: When quality matters more than cost. It leads Terra on Artificial Analysis’s index (57 vs 51) at roughly six times the cost per task in that comparison.
Try-it checklist
- 1. Run the plain Responses snippet with gpt-6.1-terra at low and medium effort on 20 of your own images or documents.
- 2. Stand up the Playwright loop against a test copy of one internal app, with an allow list and a step cap.
- 3. Log usage on every step (cached_tokens, cache_write_tokens, output tokens) and price each run with Terra’s 0.05x cache-read rate.
- 4. Run the same tasks on gpt-6.1-sol and on your current model, and compare pass rate, wall time and cost per verified task.
- 5. Put confirmations for every consequential action in the runtime, and stop on pending safety checks.
- 6. If you are migrating from computer_use_preview, switch the tool to { "type": "computer" }, drop display size, environment and truncation, and handle the actions array.
Sources for this post
- OpenAI docs: GPT-6.1 Terra model page
- OpenAI docs: API pricing
- OpenAI docs: API changelog (Oct 26, 2026 entry)
- OpenAI docs: Using GPT-6 (GPT-6.1 Terra section and migration)
- OpenAI docs: Computer use
- OpenAI docs: Computer use integration recipes (confirmations, migration from preview)
- OpenAI docs: Prompt caching
- OpenAI docs: Images and vision (patch-based image tokens)
- OpenAI: GPT-6.1 Terra system card addendum (Oct 26, 2026)
- OpenAI: Introducing GPT-6.1 Terra (launch post; it didn’t load for me)
- OpenAI on X: launch announcement
- OpenAI on X: availability in ChatGPT Work, Codex and the API
- BleepingComputer: launch coverage (secondary, Oct 26, 2026)
- The Decoder: pricing, Artificial Analysis figures and system card (secondary)
- Artificial Analysis: GPT-6.1 Terra (Max) vs Claude Opus 5.5 (Xhigh)
- Interesting Engineering: launch coverage (secondary)
- Anthropic: Claude pricing (Sonnet 5.5 and Opus 5.5)



