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.

macOS & Linux

Downloads the prebuilt binary for your OS and architecture into ~/.local/bin.

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

Windows

PowerShell installer, or your package manager of choice.

> irm https://lazysvn.sawirstudio.com/install.ps1 | iex
> winget install SawirStudio.LazySVN
> scoop bucket add sawirricardo https://github.com/sawirricardo/scoop-bucket
> scoop install lazysvn

Homebrew

macOS or Linux. Pulls in Subversion if you don't have it.

$ brew install sawirricardo/tap/lazysvn

Linux packages & Go

.deb, .rpm and .apk packages are attached to every release.

$ sudo apt install ./lazysvn_*_amd64.deb
$ go install github.com/sawirricardo/lazysvn@latest

Run

Navigate to any SVN working copy and launch.

$ cd ~/my-svn-project
$ lazysvn