Wenlan
Wenlan is a source-backed AI knowledge base and LLM wiki for AI work: organize documents and decisions into pages you can find, inspect, and review.
翻訳待ち
リポジトリ情報はまだ収集していません。
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Read your exported AI chats as a phone-style chat, keep them sorted in folders, and back them up as plain Markdown files. It runs in your browser, works offline, and installs on your phone like an app.
Live site: https://sarail19th.github.io/markdown-chat-reader/
I wanted a backup of my ChatGPT chats that I could read on Google Drive. The export turned out to be one huge file: every chat from every project mixed together by date, with no project names. Asking another AI to sort it out meant uploading all my chats, running into free-plan limits, and hoping nothing got shortened along the way.
So I made this. It opens the export on my own phone, lets me put chats back into folders, and saves them as .md files that Google Drive shows as plain text and this app shows as a chat. Nothing leaves the device.
I built it with help from Claude (Claude Code), and I test each change on my own phone.
[Name] go into the folder Name), and Download .zip for one .md file per chat, in folders. For other apps, Help has a prompt that asks an AI to do the conversion..md file, or the backup .zip to get its list back.**Name:**..md file or an export to it.Edited chats are labelled, and the page always shows that it is an unofficial viewer, not a screen from any AI company. Please only edit your own chats.
No build step. Serve the folder with any static server, for example:
python3 -m http.server 8000
Then open http://localhost:8000. Service workers need localhost or HTTPS.
GitHub runs them on every push (see the Actions tab); the site only deploys when they pass. To run them on a computer with Node.js:
npm install
npx playwright install chromium # once, the browser the tests drive
npm test
tests/parser.test.js checks how .md text is split into messages. tests/app.test.js opens the app in an invisible Chrome and uses the made-up files in tests/fixtures (rebuild them with python3 tests/fixtures/make.py).
| Path | What it is |
|---|---|
LICENSE | MIT licence for this app's own code |
index.html | The app: HTML, CSS and vanilla JavaScript. The parser sits between the //#parser-start and //#parser-end markers. |
sample.md | The sample chat shown on first load. It explains how to use the reader, in the reader's own chat format. Edit it to change the start screen. |
sw.js | Service worker for offline use. It caches only app files, never chats. |
manifest.webmanifest, icon-192.png, icon-512.png, icon-maskable-512.png, apple-touch-icon.png | Install-as-app support (icon-source.svg is the editable source of the icon, not deployed) |
vendor/ | marked and DOMPurify, bundled so the app works offline |
fonts/ | Figtree and JetBrains Mono (woff2) with their SIL Open Font Licence files |
.github/workflows/pages.yml | Runs the tests on every push, and deploys to GitHub Pages from main when they pass |
tests/, package.json | Automated tests (see below); tests/fixtures holds made-up exports, never real chats |
.github/screenshots/, .github/social-preview.png | README screenshots (made with sample data) and the repository's social preview image |
MIT, see LICENSE. Bundled libraries and fonts keep their own licences. The font licences are in fonts/. See the marked and DOMPurify projects for theirs.