Capturing AI Logs
Every 8x contest requires you to submit the AI conversation logs from your build. They live inside your repository at /ai-logs/ — we check the folder when you submit.
Files in /ai-logs/: .txt .md .jsonl — at least one file required, no upload size limit.
Required Log Structure
Each interaction in your logs must clearly distinguish the prompt from the AI's response. The simplest format is Markdown headers:
## Prompt
What prompt you typed to the AI — as specific as possible.
## Response
The full response the AI gave you.
---
## Prompt
Your next prompt...
## Response
The next response...You can use any separator style as long as prompts and responses are clearly labeled. Raw exported files from Claude Code or Cursor are accepted as-is.
Tool-Specific Instructions
Claude Code automatically saves conversation logs as Markdown files under ~/.claude/projects/. No extra steps needed — just find and upload them.
# List your Claude Code project logs
ls ~/.claude/projects/
# Copy logs into the /ai-logs/ folder of your repo
mkdir -p ./ai-logs
cp ~/.claude/projects/<your-project>/*.md ./ai-logs/
# Commit and push
git add ai-logs && git commit -m "add ai logs" && git pushExport your chat history from the Cursor command palette.
1. Open command palette: Cmd+Shift+P / Ctrl+Shift+P
2. Search: Export Chat History
3. Save the export into ./ai-logs/ as .txt, then commit and push
Windsurf does not have a built-in export — copy your conversation manually.
1. Open the Windsurf chat panel
2. Select all conversation text (Ctrl+A)
3. Paste into ./ai-logs/<thread>.txt, format with Prompt / Response headers, then commit and push
Use this shell script to record a terminal session with timestamps. Run it before you start working and it will capture everything automatically.
#!/bin/bash
# ai-log-capture.sh
# Records your terminal session to a file.
# Usage: bash ai-log-capture.sh my-session.txt
# Press Ctrl+D or type 'exit' to stop recording.
OUTPUT="${1:-ai-session.txt}"
echo "Recording session to $OUTPUT — press Ctrl+D to stop."
script -q "$OUTPUT"
echo "Session saved to $OUTPUT"To format a raw paste into clean Prompt / Response Markdown, run this Python helper:
#!/usr/bin/env python3
# format-ai-log.py
# Usage: python format-ai-log.py raw.txt > formatted.md
import sys, re
def format_log(text):
# Split on common AI tool separators
blocks = re.split(r'\n(?=You:|Human:|User:|Assistant:|AI:)', text)
out = []
for block in blocks:
if re.match(r'^(You:|Human:|User:)', block):
content = re.sub(r'^(You:|Human:|User:)\s*', '', block).strip()
out.append(f"## Prompt\n{content}")
elif re.match(r'^(Assistant:|AI:)', block):
content = re.sub(r'^(Assistant:|AI:)\s*', '', block).strip()
out.append(f"## Response\n{content}")
return "\n\n---\n\n".join(out)
with open(sys.argv[1]) as f:
print(format_log(f.read()))Tips for High-Quality Logs
- Include your full conversation — reviewers look for how you iterated, not just the final prompt.
- Do not edit or clean up AI responses. Commit raw exports whenever possible.
- If you used multiple tools, drop a separate file for each into /ai-logs/ — no need to zip.
- Your repo is public, so your logs are public. Scrub any API keys or secrets before committing.
- Minimum: at least 1 file in /ai-logs/. No maximum on conversation length or file count.
Official Documentation
File size limits
AI logs live in your repo — GitHub's 100 MB-per-file ceiling applies.