Wenlan
Wenlan은 소스 기반 AI 지식베이스·LLM 위키로, 문서·결정을 페이지화해 검색·검토·리뷰 가능
AI 채팅 내보내기를 전화 채팅처럼 읽고 브라우저에서 마크다운 파일을 열 수 있는 단일 파일 오프라인 PWA이며 업로드나 저장이 없습니다
Read AI chat exports as a phone-style chat. A single-file offline PWA that opens Markdown files in your browser. Nothing is uploaded or saved.
생산성GitHub @sarail19th온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
저장소 정보는 아직 수집하지 않았습니다.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
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.