CrankBot — Lo-Fi AI Chatbot for Playdate (Open Source)

Hi everyone! I built CrankBot — an AI chatbot that runs on your Playdate via a self-hosted API server.

I work on products at [AI-MY](https://ai-my.net) under the theme of "anti-innovation / rediscovery." We recently won 3rd place + Anthropic Award at the Claude Hackathon with a Lo-Fi Camera that prints pixel art on thermal paper. CrankBot comes from the same impulse — what happens when you put AI on the most constrained screen possible?

## How it works

```

Playdate (Lua) ──HTTPS──▶ API Server (Python/FastAPI) ──▶ LLM API

```

The Playdate app sends user messages over HTTPS to a Python/FastAPI server, which queries any OpenAI-compatible LLM API (Claude, GPT, Gemini, Groq, etc.) and returns the response.

## Technical details

- On-screen keyboard for text input

- Conversation history with sliding window (last 6 exchanges)

- Crank-based scrolling for long responses

- Bearer token authentication

- Response buffering and word-wrap for the 400x240 display

- ~500 lines of Lua, ~80 lines of Python

- Works with any LLM provider that supports the OpenAI chat completions format

## What surprised me

The crank scroll changes the whole experience. You physically turn through each line of the AI's response. You end up actually reading every word — something that almost never happens with AI in a browser. The deliberate slowness feels like a feature.

## Setup

You'll need:

1. A Playdate

2. A server running Python 3 with FastAPI

3. An API key from any LLM provider (Anthropic, OpenAI, etc.)

Full instructions in the README.

## Source code

Everything is MIT licensed:

I'd love feedback on:

- The on-screen keyboard UX

- Text rendering on the 1-bit display

- Any ideas for cool features

Thanks for checking it out!