Open source · Written in Go

SVN in the
terminal, finally.

A keyboard-driven TUI for Subversion. Navigate status, view diffs, commit, revert — all without leaving your terminal.

$ curl -fsSL https://lazysvn.sawirstudio.com/install.sh | sh copy
lazysvn — ~/project
LazySVN - SVN TUI
Changes
> [M] src/auth/login.go
* [M] src/api/handler.go
[A] src/middleware/cors.go
[D] src/legacy/compat.go
[M] config/settings.yaml
[?] docs/api-v2.md
[M] tests/auth_test.go
[A] src/middleware/rate.go
Diff: src/auth/login.go
Index: src/auth/login.go
===================================
--- src/auth/login.go (rev 847)
+++ src/auth/login.go (working)
@@ -23,7 +23,9 @@
func HandleLogin(w http.Writer) {
token, err := auth.Validate(r)
- if err != nil {
+ if err != nil && !isRetry(r) {
+ metrics.AuthFail.Inc()
http.Error(w, "unauth", 401)
return
}
Everything you need.
Nothing you don't.
~

Inline Diffs

View diffs for any changed file instantly. Navigate the file list and the diff follows.

#

File Log

Show the last 20 log entries for any file. See who changed what and when, without context-switching.

*

Batch Operations

Mark multiple files with space, then commit, add, or revert them all at once.

>

Keyboard First

Vim-style navigation. Every action is a single keystroke. No menus, no clicking, no friction.

$

Single Binary

Written in Go. Zero runtime dependencies. Download and run — works on Linux, macOS, Intel and ARM.

%

Responsive Layout

Adapts between split and stacked layout based on terminal width. Works in any size terminal.

Muscle memory,
not mouse memory.
jkMove up / down
gGJump to top / bottom
spaceMark / unmark file
dView diff
lView file log
cCommit
aAdd unversioned
vRevert (with confirm)
uSVN update
rRefresh status
hShow help
qQuit
Up and running
in one command.

Quick Install

Downloads a prebuilt binary for your OS. Falls back to building from source.

$ curl -fsSL https://lazysvn.sawirstudio.com/install.sh | sh

Homebrew

Install via Homebrew tap on macOS or Linux.

$ brew tap sawirricardo/tap
$ brew install --HEAD lazysvn

From Source

Build from source with Go 1.21+.

$ git clone https://github.com/sawirricardo/lazysvn
$ cd lazysvn && go install .

Run

Navigate to any SVN working copy and launch.

$ cd ~/my-svn-project
$ lazysvn