Seismic is a coding activity tracker for developers who want a private, cross-editor view of where their time goes. It records activity from your editor, turns that activity into useful stats, and shows the results in a web dashboard.
It works across VS Code, JetBrains IDEs, and Neovim, so your stats stay unified even if you move between editors during the day.
- Live app: https://seismic.icu
- Contact: hello@seismic.icu
- Coding time by day, week, month, year, and all time.
- Project, language, editor, operating system, and machine breakdowns.
- A dashboard with summary cards, charts, heatmap activity, goals, and a project timeline.
- Public profile pages with privacy controls for hiding sensitive stats.
- Goals and reminders for daily, weekly, or monthly coding targets.
- Badges for milestones and profile achievements.
- WakaTime import support so existing history can be brought into Seismic.
- Offline-friendly editor tracking: extensions queue failed heartbeats and retry later.
- Shared API key support across supported editors.
- Optional project metadata sync, including Git repository links, website links, branch names, and recent commits.
Install the editor integration you use, then open your Seismic settings page and copy your API key.
| Editor | Install |
|---|---|
| VS Code | Visual Studio Marketplace |
| JetBrains IDEs | JetBrains Marketplace search or build from apps/jetbrains |
| Neovim | See apps/nvim/README.md |
After installation:
- Sign in to the Seismic web app.
- Go to Settings.
- Copy your API key.
- Run the editor command to set the API key:
- VS Code:
Seismic: Set API Key - JetBrains:
Tools > Seismic > Set API Key - Neovim:
:SeismicSetApiKey
- VS Code:
Requirements:
- PostgreSQL.
- Go 1.25+ for the API.
- Bun 1.3+ for the web app and VS Code extension build.
- Node.js compatible with Angular 22. The Angular CLI used here requires Node
22.22.3+,24.15.0+, or26.0.0+. - Java 17+ for the JetBrains plugin build.
curlandgitfor the Neovim integration.
Project layout:
apps/api Fiber API, PostgreSQL migrations, auth, stats, imports, badges, goals
apps/web Angular web dashboard
apps/vscode VS Code extension
apps/jetbrains JetBrains IDE plugin
apps/nvim Neovim plugin
Create an API environment file in apps/api/.env:
DATABASE_URL=postgres://user:password@localhost:5432/seismic?sslmode=disable
JWT_SECRET=change-me
PORT=5024
APP_URL=http://localhost:4200
ALLOWED_ORIGINS=http://localhost:4200
SMTP_HOST=
SMTP_PORT=
SMTP_USER=
SMTP_PASS=
CLOUDINARY_CLOUD_NAME=
CLOUDINARY_API_KEY=
CLOUDINARY_API_SECRET=Start the API:
cd apps/api
go run .The API runs migrations automatically on startup.
Start the web app:
cd apps/web
bun install
bun run startFor local editor testing, point the extension or plugin API URL at http://localhost:5024.
Deploy apps/api as a Go service.
Required environment variables:
DATABASE_URL=
JWT_SECRET=
PORT=5024
APP_URL=https://your-web-domain.com
ALLOWED_ORIGINS=https://your-web-domain.comOptional but recommended:
SMTP_HOST=
SMTP_PORT=
SMTP_USER=
SMTP_PASS=
CLOUDINARY_CLOUD_NAME=
CLOUDINARY_API_KEY=
CLOUDINARY_API_SECRET=Run command:
go run .Build command:
go build -o seismic-api .The API exposes Swagger docs at /api/docs/.
Set the production API URL in apps/web/src/environments/environment.prod.ts.
Build:
cd apps/web
bun install
bun run buildDeploy apps/web/dist/web/browser as a static site. The included apps/web/vercel.json is configured for Vercel with SPA rewrites.
cd apps/vscode
bun install
bun run buildPublish with your VS Code Marketplace publisher account, or package it with vsce if you want to distribute a .vsix.
cd apps/jetbrains
./gradlew buildThe plugin artifact is produced under apps/jetbrains/build/distributions.
The Neovim plugin is distributed from this monorepo. Users install majoramari/seismic and add apps/nvim to the runtime path. See apps/nvim/README.md for the full setup.
Seismic records coding activity metadata such as file path, project name, language, editor, branch, OS, machine name, line count, cursor line, timezone, and keystroke count. Privacy settings let users hide profile stats, project stats, editor stats, OS stats, badges, and selected projects from public views.
- Muhannad Elbolaky
- Ali Mustafa
- Momen Aymann
- Aya Mohamed
- Amr Mousa
- Basma Bahaa
GPL-3.0. See LICENSE.