The backend your coding agent stops rebuilding
Media, models, embeddings, and routes are one Python file. Claude Code, Cursor, and Codex reach a working app with less code, less glue, and fewer wrong turns.
Or let the agent run pxt new: one hosted database, no account. Claim it within 48 hours.
Same app, two backends
Six wrong turns, numbered on a real Celery task. Switch to the Pixeltable file for the same product.
@celery_app.task(name="worker.tasks.process_call", ...)def process_call(call_id: str) -> None:db = SessionLocal()try:call = db.get(Call, uuid.UUID(call_id))call.status = "transcribing"db.commit()diarized = transcribe_diarize(call.audio_path)labeled = extract_segments(diarized)for pos, seg in enumerate(labeled):db.add(TranscriptSegment(call_id=call.id, pos=pos, ...))client = OllamaClient()result = client.enrich_call(transcript_text, ...)call.summary = result.summary# ... action items, sentiment, category, QA scorecardembed_call_segments(db, call.id)call.status = "completed"db.commit()except Exception as exc:db.rollback()call.status = "failed"call.error_message = str(exc)
Six wrong turns in one task
The same call-search product on two backends, from pixeltable/showcase-call-intelligence. Code abridged: ... marks what was cut. Counts are its pipeline code, measured on main.
Six habits the skill replaces
Each is a system the agent would build and you would keep running. The skill names the habit and the line that replaces it.
A framework for chunking and retrieval
RecursiveCharacterTextSplitter + Chroma + RetrievalQA
document_splitterChunking is a view. Search is
.similarity(). Tools arepxt.tools()andinvoke_tools().pandas as the working store
df['summary'] = df['text'].apply(call_openai)
summary = chat_completions(...)The table is the store.
.collect().to_pandas()is for export.A for-loop calling a model
for row in df.iterrows(): client.chat.completions.create(...)
t.recompute_columns('summary', errors_only=True)The call is an assignment on the model. Retries rerun only the rows that failed.
A second vector database
index.upsert(ids, vectors)
__indexes__ = [pxt.EmbeddingIndex(...)]The index lives on the column. Search with
.similarity(string=query).A while-loop agent
while True: ...
invoke_tools(tools, response)Insert a row. The model call, the tool calls, and the answer are columns that keep their state.
A model loaded on every row
whisper.load_model('tiny.en')
pxtf.whisper.transcribe(audio, model='tiny.en')The shipped wrappers cache the weights per process, so they load once.
And the small ones
python app.pypxt schema update, thenpxt service update- Drop and recreate tables to reset
- Edit
app.py, thenpxt schema update - Chat history in Redis
- A table
- A hard-coded
api_key= - The environment or
config.toml
Skill, backend, Cloud
The agent installs the skill, applies one file, and ships the same file hosted. Start free at every step.
1Skill
The agent pulls Pixeltable in.
One install teaches it tables, computed columns, indexes, and routes, and replaces the six habits above.
- Any agent
npx skills add pixeltable/pixeltable-skill- Claude Code: add
/plugin marketplace add pixeltable/pixeltable-skill- Claude Code: install
/plugin install pixeltable@pixeltable-skill- Your agent’s setup
- Setup guides
- What it teaches
- Agent Skill
2Backend
One file is the app’s state.
Tables, computed columns, an embedding index, and routes live in
app.py. Insert runs the models. Failures, versions, and recomputes stay in the tables, not in a chat scratchpad.- Mark the project root
pxt init- Create the tables
pxt schema update app.py my_app -f- Serve HTTP
pxt service update app.py my_app -f- Read failures
pxt errors my_app/docs- The file, line by line
- Backend for AI agents
3Cloud
The same file, hosted.
Start free:
pxt newmakes one hosted database with no account and prints its URI; claim it within 48 hours. The next three commands apply the same file to that URI. Community is free; Pro is the paid step.- Free database
pxt new- Provision it
pxt db update pxt://trial-x7k2:main -f- Create the tables
pxt schema update app.py pxt://trial-x7k2:main -f- Serve HTTP
pxt service update app.py pxt://trial-x7k2:main -f- What you get free
- Free database
- Plans
- Pricing
Setup guides for your agent
Install steps, MCP configuration, and prompts for each agent.
- Claude CodeAnthropic
Agentic coding in your terminal. Understands your codebase, runs commands, and edits files.
- CursorAnysphere
The AI-first IDE. Agent mode edits across files, runs commands, and iterates on errors.
- CodexOpenAI
OpenAI's coding agent for the terminal and cloud. Reads and writes files, executes commands.
- GitHub CopilotGitHub
AI pair programmer with agent mode. The workspace agent understands your entire project.
Agents read the same pages as markdown: add .md to any guide, or start at get-started.md, llms.txt, or agent.json.
Questions
What does the Pixeltable skill change for a coding agent?
app.py, and it replaces six habits: a retrieval framework, pandas as the store, model calls in a loop, a second vector database, a while-loop agent, and a model loaded on every row.Do I need an account to start?
pxt init, pxt schema update, and pxt service update with no account. For a hosted database, pxt new makes one with no account; claim it within 48 hours to keep it.Which coding agents does it work with?
npx skills add pixeltable/pixeltable-skill installs it for Claude Code, Cursor, Codex, GitHub Copilot, Windsurf, Gemini CLI, OpenCode, and Devin. Each has a setup guide on this page.What does Pixeltable Cloud cost?
Give your agent the backend before it builds one
One command for a hosted database with no account: pxt new. Or install the skill and start locally.