[English] | ζ₯ζ¬θͺ
π’ Important Notice (2025-10-25)
ChatView has been streamlined to a single, lightweight edition. The former "Enterprise Edition" is now the standard version, optimized for all environments including corporate settings. PNG/HTML export features have been discontinued in favor of SVG-only export for better compatibility and security.
ChatView is a lightweight VS Code extension designed for visualizing chat-format markdown files. Optimized for corporate environments with SVG-only export functionality, it operates safely in environments with SSL certificate issues or proxy restrictions.
- No Browser Automation: No dependencies like Puppeteer or Playwright
- Lightweight Package: No browser binaries required, significantly reducing distribution size
- Enhanced Security: No external browser process launches, avoids SSL certificate issues
- Proxy Environment Support: Not affected by corporate proxy settings
- SVG Export: High-quality output in vector format
- Chat-format Preview: Beautiful visualization of @ai / @me style conversations
- Teams Transcription Converter: Convert Microsoft Teams DOCX transcripts to ChatView format
- Open a Markdown file (e.g., sample.md) in VS Code
- Press Ctrl+Shift+P to open the Command Palette
- Execute ChatView: Show Preview | γγ¬γγ₯γΌθ‘¨η€Ί
- The chat UI will be displayed in the Webview
- While preview is displayed, press Ctrl+Shift+P to open the Command Palette
- Execute ChatView: Export as SVG | SVGγ¨γ―γΉγγΌγ
- Specify the save location and save the SVG file
You can convert Microsoft Teams transcript DOCX files to ChatView format.
Download transcript2chatview.py from the GitHub repository:
# Clone the repository
git clone https://github.com/keides2/chatview.git
cd chatview/tools
# Or download directly
curl -O https://raw.githubusercontent.com/keides2/chatview/enterprise-edition/tools/transcript2chatview.pypip install python-docx# Basic usage (icons saved as separate files in icons/ directory)
python transcript2chatview.py input.docx -o output.md
# Merge consecutive messages from the same speaker
python transcript2chatview.py input.docx --merge-speaker -o output.md
# Hide timestamps and icons
python transcript2chatview.py input.docx --no-timestamp --no-icon -o output.md
# Embed icons as Base64 (not recommended for large files)
python transcript2chatview.py input.docx --embed-icons -o output.mdNote: By default, speaker icons are saved as separate PNG files in the icons/ directory alongside the output markdown file. This keeps file sizes manageable for large transcripts.
After conversion, you can open and preview the Markdown file in VS Code.
In ChatView, you can easily specify speakers in Markdown. By placing the prefix @ai or @me at the beginning of a line, they will be rendered as AI-side or user-side speech bubbles respectively.
Example (Markdown):
@ai Hello, what shall we do today?
@me I'm thinking about watching a movie!
@ai How about "Interstellar"? It's very moving.Important specifications:
- Each conversation starts with a line prefixed with @ai or @me
- Subsequent lines without a prefix at the beginning are treated as "continuation lines" and grouped into the same speech bubble
- Use lowercase @ai / @me prefixes at the beginning of lines
- Limited Markdown syntax is rendered within speech bubbles (headings #, bold **, italic *, inline code `, lists -, numbered lists, quotes >, links text, etc.)
- In SVG export, Markdown notation is removed and output as plain text
The UI appearance is mainly defined in media/style.css.
Steps to modify in development environment:
- Edit media/style.css
- Close and reopen the preview, or reload the extension host window (Ctrl+R)
chatview/
βββ src/
β βββ extension.ts // Extension entry point (includes SVG generation logic)
βββ media/
β βββ style.css // Chat UI style definitions
β βββ script.js // Markdown parser in Webview
βββ tools/ // Development and conversion tools
β βββ converters/
β β βββ transcript2chatview.py // Convert Teams transcript DOCX to ChatView format
β βββ generators/
β β βββ create_sample_docx.py // Generate sample transcript DOCX
β β βββ generate-icons.ps1 // Generate icon images
β βββ samples/
β β βββ transcripts/ // Transcript samples
β β βββ markdown/ // Markdown samples
β βββ tests/
β βββ puppeteer-test.js // Test scripts
βββ dist/
β βββ releases/ // Released .vsix files
βββ .vscode/
β βββ launch.json // Debug configuration
β βββ tasks.json // Build/development task definitions
βββ tsconfig.json // TypeScript compiler settings
βββ package.json // Extension metadata
Prerequisites:
git clone https://github.com/keides2/chatview.git
cd chatview
git checkout enterprise-edition
npm installTesting:
- Open the project in VS Code
- Press F5 to launch the extension host
- In the debug window, open sample.md and press Ctrl+Shift+P β ChatView: Preview display
- After editing media/style.css, close and reopen the preview
# Development build
npm run compile
# Production build
npm run package
# Create VSIX package
vsce package- Visual Studio Code: Version 1.103.0 or higher
- No Browser Required: Chrome/Chromium installation is not required
- Download the .vsix file from the release page
- In VS Code, press Ctrl+Shift+P β Extensions: Install from VSIX...
- Select the downloaded .vsix file
- Clone the repository (enterprise-edition branch)
- Run
npm installto install dependencies - Run
npm run packageto build - Press F5 to launch the extension host
Enterprise Edition meets the following security requirements:
- No External Process Launch: Reduces security risks by not launching browsers
- No Network Access: Export processing requires no external communication
- Privacy Protection: Implementation does not include personal information (such as usernames) in paths
- Avoids SSL Certificate Issues: Works in corporate self-signed certificate environments without using browser automation
Specify the default folder for the save dialog.
- workspace: Workspace root (default)
- home: User home directory
- Absolute path: Any directory path
Example (settings.json):
{
"chatPreview.defaultFolder": "C:\\Users\\YourName\\Documents\\ChatExports"
}- Using in corporate proxy environments
- Environments with SSL certificate issues
- Browser installation is restricted
- Need for lightweight package
- SVG format is sufficient
- Need PNG format export
- Need HTML format export
- Need pixel-perfect screenshots
- Verify VS Code version is 1.103.0 or higher
- Execute Developer: Reload Window in the Command Palette
- Verify write permissions for the save directory
- Verify the filename does not contain invalid characters
MIT License See LICENSE file for details.