A Next.js application for uploading, storing, and replaying Augment AI conversation sessions with an interactive turn-by-turn playback interface.
- 📤 Session Loading: Load any Augment session JSON files via drag-and-drop or file picker
▶️ Interactive Replay: Navigate through conversation turns with playback controls- 🔄 Turn Grouping: Intelligent grouping of raw exchanges into logical conversation turns
- 🎨 Rich Markdown: Full markdown support with syntax highlighting for code blocks
- 🌙 Dark Theme: GitHub-inspired dark theme optimized for readability
- 🔍 Tool Call Inspection: Expandable panels to view tool calls and their results
- Framework: Next.js 16.1.6 (App Router)
- Runtime: React 19.2.3
- Language: TypeScript 5 (strict mode)
- Styling: Tailwind CSS 4
- Markdown: react-markdown with remark-gfm and react-syntax-highlighter
- Font: JetBrains Mono (monospace)
- Node.js 20+ or compatible runtime
- npm, yarn, pnpm, or bun
- Clone the repository:
git clone <repository-url>
cd augment-session-replay- Install dependencies:
npm install
# or
yarn install
# or
pnpm install- Run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev- Open http://localhost:3000 in your browser
npm run build
npm run startaugment-session-replay/
├── src/
│ ├── app/ # Next.js App Router pages
│ │ ├── layout.tsx # Root layout with SessionProvider
│ │ ├── page.tsx # Home page with session list
│ │ └── globals.css # Global styles
│ ├── components/ # React components
│ │ ├── SessionList.tsx # Session upload and list
│ │ ├── SessionReplay.tsx # Main replay interface
│ │ ├── PlaybackControls.tsx # Navigation controls
│ │ ├── Timeline.tsx # Visual timeline
│ │ ├── TurnCard.tsx # Individual turn display
│ │ ├── ToolCallPanel.tsx # Tool call details
│ │ ├── ThinkingBlock.tsx # Thinking indicator
│ │ └── MarkdownRenderer.tsx # Markdown with syntax highlighting
│ └── lib/
│ ├── parser/ # Session parsing logic
│ ├── schema/ # TypeScript type definitions
│ └── session-context.tsx # React context for session state
├── sessions/ # Uploaded session files (gitignored)
└── specs/ # Technical specifications
└── encryption-at-rest.md # Encryption proposal
The application intelligently groups raw message exchanges into logical "turns":
- Each turn starts with a user message
- Includes all subsequent tool calls and agent responses
- Provides a natural conversation flow for replay
- Sessions are uploaded via the
/api/sessions/uploadendpoint - Stored as JSON files in the
/sessionsdirectory - Retrieved via the
/api/sessionsendpoint - Note: Currently unencrypted; see
specs/encryption-at-rest.mdfor planned security enhancements
npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run lint- Run ESLint
- SessionProvider: Global state management for session data
- SessionReplay: Main replay interface with turn navigation
- MarkdownRenderer: Handles rich text rendering with code syntax highlighting
- PlaybackControls: Turn-by-turn navigation UI
- Encryption at rest for session data
- Session search and filtering
- Export functionality
- Session sharing capabilities
- Performance optimizations for large sessions
Contributions are welcome! Please ensure:
- TypeScript strict mode compliance
- Consistent code formatting
- Component documentation
[Add your license here]