Demo script showing HTTP requests to use tools with reasoning with GPT-5.
OPENAI_API_KEY=$(llm keys get openai) uv run --with rich --with httpx gpt5_database_tools.py| <pre style="background: rgb(0, 0, 0); color: rgb(255, 255, 255); padding: 15px; border-radius: 4px;">⏺<span style="color: rgb(242, 242, 242);"> Perfect! The dev server is now running successfully </span><span style="color: rgb(97, 97, 97);">11:36 PM</span><span style="color: rgb(242, 242, 242);"> </span><span style="color: rgb(97, 97, 97);">claude-sonnet-4-5-20250929</span> | |
| <span style="color: rgb(242, 242, 242);"> on port 8036. I've completed all the changes:</span> | |
| <span style="color: rgb(242, 242, 242);"> </span><span style="color: rgb(255, 255, 255);">Summary of Changes</span> | |
| <span style="color: rgb(242, 242, 242);"> I've successfully updated the video editor to track</span> | |
| <span style="color: rgb(242, 242, 242);"> and use actual filenames for overlay images in the</span> | |
| <span style="color: rgb(242, 242, 242);"> FFmpeg commands:</span> | |
| <span style="color: rgb(242, 242, 242);"> </span><span style="color: rgb(97, 97, 97);">What Changed:</span> |
| <pre style="background: rgb(0, 0, 0); color: rgb(242, 242, 242); padding: 15px; border-radius: 4px;"> | |
| ╭───<span style="color: rgb(204, 98, 70);"> Claude Code </span><span style="color: rgb(135, 135, 135);">v2.0.26</span><span style="color: rgb(204, 98, 70);"> </span>──────────────────────────────────────────────────────────────────────────╮ | |
| │<span style="color: rgb(242, 242, 242);"> </span>│<span style="color: rgb(242, 242, 242);"> </span><span style="color: rgb(204, 98, 70);">Tips for getting started</span><span style="color: rgb(242, 242, 242);"> </span>│ | |
| │<span style="color: rgb(242, 242, 242);"> </span><span style="color: rgb(255, 255, 255);">Welcome back Simon!</span><span style="color: rgb(242, 242, 242);"> </span>│<span style="color: rgb(242, 242, 242);"> Run /init to create a CLAUDE.md file with inst</span> <span style="color: rgb(242, 242, 242);"> </span>│ | |
| │<span style="color: rgb(242, 242, 242);"> |
| <pre style="background: rgb(42, 42, 42); color: rgb(255, 255, 255); padding: 15px; border-radius: 4px;"><span style="color: rgb(255, 255, 255);">> Take a look at this issue and see what you think https://github.com/simonw/datasette/issues/2520 </span> | |
| ⏺<span style="color: rgb(242, 242, 242); background: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 255, 255); background: rgb(0, 0, 0);">Fetch</span><span style="color: rgb(242, 242, 242); background: rgb(0, 0, 0);">(https://github.com/simonw/datasette/issues/2520)</span> | |
| <span style="color: rgb(242, 242, 242); background: rgb(0, 0, 0);"> </span>⎿<span style="color: rgb(242, 242, 242); background: rgb(0, 0, 0);"> </span> <span style="color: rgb(242, 242, 242); background: rgb(0, 0, 0);">Received </span><span style="color: rgb(255, 255, 255); background: rgb(0, 0, 0);">239.1KB</span><span style="color: rgb(242, 242, 242); background: rgb(0, 0, 0);"> (200 OK)</span> | |
| ⏺<span style="color: rgb(242, 242, 242); background: rgb(0, 0, 0);"> </span><span style |
| <pre style="background: rgb(0, 0, 0); color: rgb(242, 242, 242); padding: 15px; border-radius: 4px;"> | |
| ╭───<span style="color: rgb(204, 98, 70);"> Claude Code </span><span style="color: rgb(135, 135, 135);">v2.0.25</span><span style="color: rgb(204, 98, 70);"> </span>──────────────────────────────────────────────────────╮ | |
| │<span style="color: rgb(242, 242, 242);"> </span>│<span style="color: rgb(242, 242, 242);"> </span><span style="color: rgb(204, 98, 70);">Tips for getting </span><span style="color: rgb(242, 242, 242);"> </span>│ | |
| │<span style="color: rgb(242, 242, 242);"> </span><span style="color: rgb(255, 255, 255);">Welcome back Simon!</span><span style="color: rgb(242, 242, 242);"> </span>│<span style="color: rgb(242, 242, 242);"> </span><span style="color: rgb(204, 98, 70);">started</span><span style="color: rgb(242, 242, 242);"> </span>│ | |
| │<span style="color: rgb(242, 242, 242);"> |
| <pre style="background: rgb(0, 0, 0); color: rgb(242, 242, 242); padding: 15px; border-radius: 4px;"> | |
| ╭───<span style="color: rgb(204, 98, 70);"> Claude Code </span><span style="color: rgb(135, 135, 135);">v2.0.25</span><span style="color: rgb(204, 98, 70);"> </span>──────────────────────────────────────────────────────╮ | |
| │<span style="color: rgb(242, 242, 242);"> </span>│<span style="color: rgb(242, 242, 242);"> </span><span style="color: rgb(204, 98, 70);">Tips for getting </span><span style="color: rgb(242, 242, 242);"> </span>│ | |
| │<span style="color: rgb(242, 242, 242);"> </span><span style="color: rgb(255, 255, 255);">Welcome back Simon!</span><span style="color: rgb(242, 242, 242);"> </span>│<span style="color: rgb(242, 242, 242);"> </span><span style="color: rgb(204, 98, 70);">started</span><span style="color: rgb(242, 242, 242);"> </span>│ | |
| │<span style="color: rgb(242, 242, 242);"> |
| { | |
| "id": "chatcmpl-CTcq3dXrcStnVZibmdqTnUJKljYTv", | |
| "object": "chat.completion", | |
| "created": 1761176843, | |
| "model": "gpt-4o-mini-audio-preview-2024-12-17", | |
| "choices": [ | |
| { | |
| "index": 0, | |
| "message": { | |
| "role": "assistant", |
| ╔═══════════════════════════════════════════════════════════════════════════╗ | |
| ║ ║ | |
| ║ 🎓 LLM PRE-TRAINING FROM SCRATCH - COMPLETE JOURNEY ║ | |
| ║ ║ | |
| ╚═══════════════════════════════════════════════════════════════════════════╝ | |
| ═══════════════════════════════════════════════════════════════════════════ | |
| WHAT WE ACCOMPLISHED | |
| ═══════════════════════════════════════════════════════════════════════════ |
This prototype demonstrates how Datasette's permission checking logic (allow blocks) can be implemented entirely in SQLite using JSON functions, without requiring Python logic for the core matching algorithm.
Datasette uses "allow blocks" to control permissions. An allow block is a JSON object that specifies which actors can perform an action:
A secure, isolated development environment for Claude Code with network restrictions and pre-configured development tools.
This devcontainer provides a sandboxed environment for Claude Code with: