diff --git a/home/features/cli/default.nix b/home/features/cli/default.nix
index 7e109bc..c33a3c6 100644
--- a/home/features/cli/default.nix
+++ b/home/features/cli/default.nix
@@ -1,12 +1,11 @@
 # Configures programs that primarily run via the command line
-{ pkgs, ... }:
-{
+{ pkgs, ... }: {
   imports = [
     ./fish.nix # fish shell configuration
-    ./neovim.nix # neovim configuration, my "escape" editor
     ./lazygit.nix # my preferred git porcellain
     ./direnv.nix # smart cding
     ./mise.nix # version management for tools
+    ./helix.nix # helix configuration, my CLI editor
   ];
 
   # stuff that doesn't fit into any other files
diff --git a/home/features/cli/fish.nix b/home/features/cli/fish.nix
index 96203f4..3419a13 100644
--- a/home/features/cli/fish.nix
+++ b/home/features/cli/fish.nix
@@ -1,11 +1,8 @@
-{ pkgs, ... }:
-{
+{ pkgs, ... }: {
   programs.fish = {
     enable = true;
 
-    functions = {
-      setpath = "test -e $argv[1]; and fish_add_path $argv[1]";
-    };
+    functions = { setpath = "test -e $argv[1]; and fish_add_path $argv[1]"; };
 
     interactiveShellInit = ''
       if test -z "$XDG_RUNTIME_DIR"
@@ -25,7 +22,7 @@
       setpath ~/.bun/bin
       setpath ~/Projects/Checkouts/arcanist/bin
 
-      set -x EDITOR nvim
+      set -x EDITOR hx
       set -x USER lu
       set -x SHELL (which fish)
       set -x TERM xterm-256color
@@ -96,6 +93,7 @@
       jbm = "jj branch move";
       jgp = "jj git push";
       jdiff = "jj diff";
+      jnew = "jj new";
 
       # nix aliases
       n = "nix";
diff --git a/home/features/cli/helix.nix b/home/features/cli/helix.nix
new file mode 100644
index 0000000..70e7c6c
--- /dev/null
+++ b/home/features/cli/helix.nix
@@ -0,0 +1,6 @@
+{ ... }: {
+  programs.helix = {
+    enable = true;
+    defaultEditor = true;
+  };
+}