Zero-code log capture

Capture every log.
Change zero code.

Server logs from tmux. Browser console from an extension. One YAML config file, one command, and you're done. No SDKs, no wrappers, no instrumentation.

curl install View on GitHub
devlog.yml
version: 1
project: my-app
logs_dir: ./logs

tmux:
  session: my-app
  windows:
    - name: dev
      panes:
        - name: web
          cmd: npm run dev
          log: server/web.log
        - name: api
          cmd: pnpm --filter api dev
          log: server/api.log

browser:
  native_host: true
  file: browser/console.log
  levels: [error, warn, info, log]
  urls:
    - "http://localhost:*/*"
Features

Set it and forget it

One YAML file declares everything. devlog handles the rest — tmux sessions, browser logs, timestamps, and cleanup.

tmux log capture

Creates sessions, runs dev commands, and pipes stdout/stderr to timestamped log files. Every pane, every process.

Browser console capture

Chrome + Firefox extension streams console.* calls, uncaught errors, and unhandled rejections straight to disk via native messaging.

One YAML config

Commands, panes, log paths, URL filters, log levels — all in a single devlog.yml. Environment variable interpolation built in.

Timestamped or overwrite

Run in timestamped mode for history, or overwrite mode for a clean slate. Auto-cleanup old runs by count or age.

Single binary

Go binary. No runtime, no Node, no Python. Drop it in your PATH and go. Works anywhere tmux runs.

Health check built in

devlog healthcheck verifies tmux, browser extension registration, and native host — before you start.

error warn info log + uncaught errors + unhandled rejections
How it works

Two inputs, one output

Server stdout and browser console converge into timestamped log files. No middleware, no service — just pipes.

tmux panes

stdout / stderr

npm run dev · pnpm dev · make watch
captures
devlog
📄
logs/
2026-02-10_17-23-11/
server/web.log
server/api.log
browser/console.log
captures

Browser tab

console.* / errors

Extension + Native Messaging Host
Install

One command to start

Pick your install method. Mac, Linux, WSL — anywhere tmux runs.

terminal
# Quick install
curl -fsSL https://raw.githubusercontent.com/jellydn/devlog/main/install.sh | sh

# Or specify version and directory
VERSION=v0.1.0 INSTALL_DIR=~/.local/bin \
  curl -fsSL https://raw.githubusercontent.com/jellydn/devlog/main/install.sh | sh
terminal
# Requires Go 1.25+
go install github.com/jellydn/devlog/cmd/devlog@latest
go install github.com/jellydn/devlog/cmd/devlog-host@latest

Then run devlog init to create your config, devlog healthcheck to verify, and devlog up to start capturing.

CLI

Everything you need

Ten commands. Simple verbs. No surprises.

CommandDescription
initCreate devlog.yml template
healthcheckCheck system requirements
upStart tmux session + browser logging
downStop session, flush logs
attachAttach to running tmux session
statusShow session state + log paths
lsList log runs
openOpen logs directory in file manager
registerRegister native messaging host
helpShow usage
Requirements

Lightweight, focused

Go 1.25+
Single binary, no runtime
1 dep
Only gopkg.in/yaml.v3
tmux
Session management
Chrome + FF
Browser extension support