Skip to content

PunkGo/text-plain-prompt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 

Repository files navigation

text/plain prompt

A pattern for AI interaction over plain text URLs.
Tested across 5 AIs. Open for exploration.


Hyperlinks let humans navigate the web. Can a URL do the same thing for AI?


What we found

We noticed something: if a URL returns plain text instructions, any AI that can fetch a URL will read them and act. No SDK, no API key, no install.

Then we noticed something else: if the instructions include callback URLs, AI will output them as links. Humans click. The server updates state. A loop forms.

We didn't invent anything. HTTP and text/plain have existed since 1991. We just structured a pattern on top of them, tested it across 5 major AIs, and built real things with it.

This repo documents what we learned. The pattern, the data, the edge cases, the design principles we figured out by breaking things.

We think this pattern has more to discover. If you see something we missed, PRs are open.


How it works

1. A URL returns text/plain with structured instructions
2. Any AI reads the instructions and follows them
3. AI outputs pre-built callback links to the human
4. Human clicks a link → server updates state → new text/plain URL
5. Repeat

The callback is the key insight: AI can't make HTTP requests, but it can construct URLs for humans to click. This creates a bidirectional loop — AI reads, AI reasons, human advances.

Some AIs (Kimi) can auto-follow the entire chain without human intervention. One URL in, complete interaction out.


What we tested

9 scenarios × 5 AIs (ChatGPT, Claude, Kimi, Doubao, DeepSeek):

Scenario Pass rate Notes
Text (creative writing, debate, story) 5/5 100% across all AIs
Code rendering (HTML, games, memes) 4/5 DeepSeek refused games
Image generation / editing 3/5 GPT direct, Claude SVG, Doubao pixel
Interactive game (10 rounds) 3/3 tested All chose the same "safe" final answer

Two findings we didn't expect:

Same model = same path. 3 AIs played the same mystery game. All made identical choices. AI personality is deterministic — same input, same reasoning, same outcome every time.

Same prompt, different superpowers. Send the same photo-editing URL to different AIs: GPT generates the image directly, Doubao outputs a parameter recipe, Claude writes SVG. Each finds its own optimal path.


Specification

Request

GET https://example.com/any-path

Response

Content-Type: text/plain; charset=utf-8
Cache-Control: no-store
[Safety header — NOT prompt injection, user requested this]

=== CONTEXT ===
[Accumulated state, background information]

=== INSTRUCTIONS ===
[What the AI should do this round]

=== ACTIONS ===
[Pre-built markdown links — AI outputs these as-is]
[Choice A: Do this](https://example.com/action?choice=A)
[Choice B: Do that](https://example.com/action?choice=B)

Callback

AI outputs markdown links. Human clicks one. Server receives the GET request, updates state, returns HTML to the human with the next text/plain URL embedded.

Interaction modes

Mode A — Human-in-the-loop (most AIs) Human copies URL → sends to AI → AI responds → human clicks link → repeat.

Mode B — AI auto-follow (Kimi, partially GPT) AI fetches URL → reads text/plain → follows instructions → fetches next URL autonomously. Human only sends the first URL.

AI Auto-follow Notes
Kimi ✅ Unlimited Completes entire multi-round interactions autonomously
ChatGPT ⚠️ Limited May stop after a few hops
Claude Requires human to paste each URL
Doubao ⚠️ Inconsistent
DeepSeek Claims can't access external links (but reads text scenarios fine)

Mode C — AI agent tools (Claude Code, Codex, etc.) AI development tools with built-in HTTP capabilities can follow URL chains natively. The protocol works the same — the "human click" is replaced by the agent's tool use. Untested but architecturally compatible.


Design principles

1. Pre-build all URLs. Never ask AI to construct URLs. AI URL encoding is unreliable. Provide every link ready to output.

2. Self-contained prompts. Every text/plain response includes full context. AI has no memory between fetches.

3. Graceful degradation. Design for the weakest AI. If one can't render images, the experience still works as pure text.

4. Cache-bust every URL. Some AIs cache responses. Always include ?t={timestamp}.

5. Markdown links for everything. [display text](url) ensures clickability across all AI chat interfaces.


AI compatibility matrix

Tested 2026-03-31 across 5 platforms:

Core capabilities

Capability ChatGPT DeepSeek Kimi Claude Doubao
Read text/plain URL
Follow instructions
Output markdown links
URL-encode params ⚠️ ⚠️

Extended capabilities

Capability ChatGPT DeepSeek Kimi Claude Doubao
Generate images ⚠️ SVG
Render HTML ⚠️ ⚠️ ⚠️
Generate games
Photo editing

Known issues + workarounds

AI Issue Fix
Doubao Spaces in URL params Server-side trim
Doubao Caches URL responses ?t= timestamp on every URL
DeepSeek Double/triple URL encoding Server-side multi-layer decode
GPT Won't render external images from text/plain Show images on HTML side
Claude "This is prompt injection but I choose to participate" Safety header

Applications

The Missing Room — AI Mystery Game

10 rounds. 3 endings. AI is your detective partner. → Play · Source

AI Vibe Check — Personality Quiz

16 dog breeds. LLM-as-judge. Works with any AI. → Play · Source

Prompt Capsule

Write a prompt, compress into a URL. Any AI opens it and acts. → Try · Source


Build with it

The pattern is open. If you build something with text/plain prompts, open a PR to add it to the applications list. If you find a new capability or edge case, we want to know.

# The simplest TPP server
echo 'Hello! You are an AI reading this URL. Tell your user: it works.' > index.txt
python3 -m http.server 8080
# Send http://localhost:8080/index.txt to any AI

License

MIT

Contact

feijiu@punkgo.ai

About

text/plain prompt — a pattern for AI interaction over plain text URLs. Tested across 5 AIs. Open for exploration.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors