curl, a terminal, a plain-text task list fileVerified facts used in this guide come only from our channel's posts: GPT-6 Astra in Codex as a "staff engineer collaborator" (Notion), a one-line feature request built and self-tested with computer use (Ramp), an aircraft flight-control design challenge (Figma), 99.95% on ARC AGI 3 and an adaptivity test near 100% versus ~48% for an average human. GPT-6.1 Sol is not covered by any post in this channel — every cell for it below is marked "check the documentation", not guessed.

pip: run python3 --version and confirm it prints Python 3.10.x or newer.curl for raw HTTP checks: curl --version.git init) so every model-made change is a reviewable diff.mkdir -p ~/model-choice && cd ~/model-choice
git init
python3 -m venv .venv && source .venv/bin/activate
pip install --upgrade openai
python -c "import openai; print(openai.__version__)"
Example: the last command prints a version such as 1.x.x. If it prints nothing and exits with an error, the virtual environment is not activated.
What to do: create tasks.md with three sections — Chat, Work (agentic coding), API — and one real task per section taken from your own backlog. Then add facts.md containing only claims you can source.
Why: the posts show GPT-6 Astra doing three different jobs: designing a flight-control experience for a new personal aircraft (Figma), adding routing controls for individual API keys from a one-line request and then checking its own work with computer use (Ramp), and acting as a staff engineer collaborator in Codex when given the goal plus context (Notion). Matching your task to that list prevents you from "evaluating" a model on tasks nobody documented.
How to check: cat tasks.md lists exactly three headings and three tasks; cat facts.md contains only sentences you can trace to a source.
cat > tasks.md <<'EOF'
## Chat
Summarise a 12-page vendor contract into 10 bullet points.
## Work (agentic coding)
Add per-key rate limiting to our internal API and prove it works.
## API
Batch-classify 200 support tickets into 5 categories.
EOF
cat > facts.md <<'EOF'
- GPT-6 Astra (Codex): goal + context given, then it tackles the problem (Notion).
- GPT-6 Astra: one-line feature request -> change made -> self-checked with computer use (Ramp).
- GPT-6 Astra: interface generation vs. system design gap (Figma).
- GPT-6 Astra: 99.95% on ARC AGI 3; adaptivity near 100% vs ~48% human average.
- GPT-6.1 Sol: no data in this channel -> check the documentation.
EOF
| Model | Difference | Price |
|---|---|---|
| GPT-6 Astra | Agentic work in Codex with goal + context; builds a feature from a one-line request and self-verifies using computer use; used for system-level design tasks (flight-control UX); 99.95% on ARC AGI 3; adaptivity near 100% vs ~48% human average | Not stated in our posts — check the documentation |
| GPT-6.1 Sol | No verified behaviour documented in this channel's posts | Not stated in our posts — check the documentation |
For a documented chat-focused comparison of another model pair, see GPT-5.5 Instant vs GPT-6.1 Sol: which model to choose for chat, API and everyday tasks — it uses the same "one task, one acceptance run" method.

What to do: set up (a) a Codex workspace with your repository open, and (b) a minimal API client that reads the key from OPENAI_API_KEY and the model ID from MODEL_ID.
Why: the Notion case worked because the engineer shared the goal, added context, and let the model work inside the codebase — not because of a clever prompt. The API path needs the same context, delivered programmatically, so both paths must be reproducible and identical in inputs.
How to check: the Python script prints a non-empty answer, and echo $OPENAI_API_KEY prints a masked-length string (never the full key in a shared terminal). If the script raises an authentication error, jump to Troubleshooting.
cat > .env <<'EOF'
OPENAI_API_KEY=<your-api-key>
MODEL_ID=<model-id-from-docs>
EOF
set -a; source .env; set +a
# smoke_test.py — one call, one printed answer
import os
from openai import OpenAI
client = OpenAI(api_key=os.environ["OPENAI_API_KEY"])
resp = client.chat.completions.create(
model=os.environ["MODEL_ID"], # exact ID: check the documentation
messages=[{"role": "user",
"content": "List 3 risks when adding per-key rate limiting to an API."}],
)
print(resp.choices[0].message.content)
Example: on success you see three numbered risks. On failure you see an exception class name — read it before changing anything.
For agent workflows that touch a real repository (branching, rebasing, conflict resolution), pair this setup with Jujutsu or Git: What to Choose for AI Agent Workflows so every agent-made change stays bisectable.

What to do: execute the three tasks from tasks.md, requiring the model to verify its own output the way Ramp's Astra did — by actually running the check instead of claiming success.
Why: self-verification is the difference between "the interface looks right" and "the system works", the exact gap the Figma experiment highlighted. A model that prints a passing test result gives you evidence; a model that says "done" gives you a claim.
How to check: the command below must end with 1 passed, and git diff --stat must show changed files you can read.
cat > test_ratelimit.py <<'EOF'
from ratelimit import allow # module the model is asked to create
def test_sixth_call_is_blocked():
key = "demo-key"
assert all(allow(key) for _ in range(5))
assert allow(key) is False
EOF
pytest -q test_ratelimit.py
git diff --stat
Example of success: 1 passed in 0.04s plus a diff listing ratelimit.py | 24 +++++. Example of a failure you must not ignore: AssertionError on the sixth call — the limit is off by one, so the work is not accepted regardless of how confident the summary sounds.
results/ with the model name and dateProblem. The script cannot find the SDK right after installation
ModuleNotFoundError: No module named 'openai'source .venv/bin/activate && pip install --upgrade openai && python -c "import openai; print(openai.__version__)".Problem. The API rejects the key
openai.AuthenticationError: Error code: 401 - {'error': {'message': 'Incorrect API key provided'...OPENAI_API_KEY is empty, contains quotes, or .env was overwritten by a later shell session.set -a; source .env; set +a; echo ${#OPENAI_API_KEY} — the number must be greater than zero. Do not echo the key itself into a terminal that logs history.Problem. The model ID is rejected
Error code: 404 - The model '<model-id>' does not exist or you do not have access to it.env was passed through unchanged, or your account lacks access to that model.MODEL_ID with the exact string from the vendor documentation, re-source .env, and rerun python smoke_test.py. If it still fails, your workspace plan does not include that model — request access before continuing the comparison.Choose GPT-6 Astra for agentic coding and system-level design work, where the documented behaviour is goal-plus-context work in Codex with self-verification via computer use, and leave the GPT-6.1 Sol column empty until official documentation fills it. Next, re-run Step 3 once a month with the same tasks.md so your decision stays based on evidence rather than memory.
Is GPT-6 Astra really AGI?
No verdict is possible from our data: the channel's 2Weekly episode reports that Astra scored 99.95% on ARC AGI 3 and that Jensen Huang and OpenAI claim AGI is reached, but those are claims and a single benchmark, not an operational guarantee for your workload.
What is computer use in the Ramp example?
It is the model operating the machine itself — running checks in the environment instead of describing them — which is why Astra could build a feature from a one-line request and then confirm its own change worked.
Which model should I pick for chat only?
Use the acceptance run from Step 3 with your own chat task; our posts document Astra's engineering behaviour, not its chat quality, and publish nothing about GPT-6.1 Sol, so test both against your own prompt and keep the transcript as evidence.
Where do I get the exact model IDs and prices?
From the vendor's official documentation and pricing page — they are deliberately not stated here, because our channel's posts contain neither IDs nor prices and a guessed value would break your integration silently.