nvi was created by Keith Bostic as a freely redistributable replacement for the original vi editor, which was encumbered by AT&T licensing. Using Elvis as a starting point, nvi became the default vi implementation on all major BSD systems.
nvi was derived from Elvis 1.8 but extensively rewritten for 4.4BSD compatibility. It implemented the POSIX 1003.2 vi specification and maintained bug-for-bug compatibility with the original vi. The code was written in C and used the curses library for terminal handling.
The original vi editor was created by Bill Joy at UC Berkeley as part of BSD Unix, but it contained AT&T-licensed code that prevented free redistribution. As part of the broader effort to create a freely redistributable BSD (which also led to the replacement of other AT&T-encumbered utilities), Keith Bostic undertook the creation of nvi -- a 'bug for bug compatible' replacement for Joy's vi.
Bostic used Steve Kirkendall's Elvis (version 1.8) as a starting point, creating nvi with the explicit goal of being a clean-room replacement that could be included in 4.4BSD-Lite without any AT&T licensing concerns. The first public release came in Spring 1994 as part of the 4.4BSD distribution.
When FreeBSD and NetBSD resynchronized with the 4.4BSD-Lite2 codebase, they adopted nvi as their default vi implementation, a role it continues to hold today. Unlike Vim, which added extensive new features, nvi deliberately remained close to the original vi specification, making it the most faithful freely-available vi clone.
Bostic begins work on replacing AT&T-encumbered BSD utilities
nvi first released as part of 4.4BSD
FreeBSD and NetBSD adopt nvi as default vi
Bostic releases nvi 1.79, his last version
nvi was a critical component of the effort to create a fully free BSD Unix, removing the last AT&T-licensed utility from the distribution. It remains the default vi on FreeBSD, NetBSD, and OpenBSD to this day, demonstrating that licensing-driven forks can achieve long-term stability even without adding flashy features.