mrkeyoor.com_
Sun 27 Sept 19:21 UTC
Dev Toolsevaluationupdated 26 Aug 2026

fresh review

Fresh is a terminal text editor with familiar desktop-style controls instead of a required modal command language. It combines ordinary editing, language-server features, an integrated terminal, plugins, and git-worktree task switching in one Rust application.

+56stars / 7d
Verdict

Our Fresh build completed in 16 seconds with 0 known dependency vulnerabilities, but its repository offered no test target to our harness. It is the terminal editor I would show first to a VS Code or Sublime Text user who now works over SSH. Use it for real work, while pinning updates in managed environments and testing remote permissions and giant one-line files before a team rollout.

We ran it

Lab card: what happened when we ran freshScreenshot of fresh (getfresh.dev)
Install✓ · 34s153 packages · 95 MB
Build✓ · 16s
Testsn/ano test script
Known vulns00 critical · 0 high · 0 moderate · 0 low (npm audit)
Repo2064 files~835,376 lines of source · 78.7 MB · 16 CI workflows · tests dir

Answers from our run

Does fresh build from source?

Dependencies installed in 34 seconds (153 packages), and the build succeeded in 16 seconds. We cloned commit a7dca75 into a clean Debian container with 3 CPUs and no project-specific setup.

Does fresh have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Does fresh have known vulnerabilities in its dependencies?

npm audit found none in the dependency tree at the time of our run.

Who should not use fresh?

Vim or Emacs users seeking a mature modal language or decades of extensions: Fresh leads with non-modal controls and a newer TypeScript plugin system.

What are the alternatives to fresh?

Helix, Neovim, Micro. Our Fresh build completed in 16 seconds with 0 known dependency vulnerabilities, but its repository offered no test target to our harness.

Setup5/5Many binary packages avoid the 153-package source install
Docs5/5Clear install matrix, user guide, demos, and plugin guidance
Community5/58,515 stars with a release and push in August 2026
Maturity4/5Broad daily-use features with open remote and update edge cases

Discussed on

  1. hnShow HN: Fresh – A new terminal editor built in Rust187 points
  2. hn$100 to a Debian Developer who can get Fresh Editor into Trixie29 points
  3. hn$100 to upgrade Fresh IDE for ePub TUI reading4 points
  4. hnFresh: Terminal based IDE and text editor: easy, powerful and fast4 points

Who it’s for

Developers who want terminal editing with familiar shortcuts, menus, mouse support, and a command palette.
People who open large logs or source files, provided those files are not giant single-line documents.
Terminal users who want language-server navigation, diagnostics, splits, git tools, and integrated shells without building a configuration first.
Developers running several coding-agent tasks who can use worktree-based isolation.

Who it’s NOT for

Vim or Emacs users seeking a mature modal language or decades of extensions: Fresh leads with non-modal controls and a newer TypeScript plugin system.
Anyone handling huge minified or single-line JSON files daily: issue 1806 reports nearly unresponsive opening and movement on that file shape.
Teams that require remote file permissions to remain exact across user IDs: issue 2944 says SSH files can appear read-only when local and remote numeric IDs differ.
Privacy-sensitive organizations unwilling to change defaults: the README says Fresh sends basic anonymous telemetry with its daily upgrade check unless disabled.
Organizations whose distribution policy excludes GPL-2.0 software.

Setup reality

Our Node 22 sandbox installed 153 packages in 34 seconds and used 95 MB on disk. The build succeeded in 16 seconds. There was no test script or target, so tests were skipped; npm audit reported 0 known vulnerabilities.

End users can avoid the source workflow: Linux has a static self-updating binary, macOS has Homebrew, Windows has winget, and several other packages are documented. Full IDE behavior still depends on external language servers, formatters, git, and the project toolchain.

The 78.7 MB checkout contained 2,064 files and about 835,376 lines of source. It has 16 CI workflows, a tests directory, and no Dockerfile. Remote workspaces, plugins, and the Orchestrator add configuration beyond the first edit.

Fresh brings desktop controls to a terminal editor

Fresh opens in a terminal but borrows its mental model from graphical editors. Familiar shortcuts, menus, tabs, mouse input, a file explorer, command palette, and visible settings work without learning modes. Language-server completion and navigation, diagnostics, code actions, split panes, an integrated terminal, project search, git history, and Markdown preview make it closer to an IDE than a minimal text editor.

That approach suits developers moving between a laptop, container, and SSH host who do not want to carry a large personal configuration. Fresh still supports editable keybindings, themes, and sandboxed TypeScript plugins. Configuration is optional rather than an entrance exam, which is a meaningful difference from editors whose best experience begins after assembling a plugin distribution.

What happened when we ran it

Our run cloned commit a7dca75 into an unprivileged Node 22 Bookworm container with 3 CPUs, 8 GB of RAM, and no secrets. The checkout contained 2,064 files, about 835,376 lines of source, and occupied 78.7 MB. Bun installed 153 packages in 34 seconds, using 95 MB on disk. The measured build then succeeded in 16 seconds.

The repository exposed no test script or target to our harness, so tests were skipped. That is not a passing test result, even though the checkout contains a tests directory and 16 CI workflow files. npm audit reported 0 known vulnerabilities in the installed dependency tree. We did not run Fresh's Rust or end-to-end suites through another command and will not assign them an outcome.

Our 50 seconds for install plus build is a manageable contributor start, but ordinary users have easier options. The project publishes a universal Linux binary and packages for macOS, Windows, Debian, Fedora, Arch, Nix, Flatpak, npm, Cargo, and other channels. A binary install avoids reproducing the 153-package development environment.

The universal Linux build updates itself

On Linux, the recommended installer places a static musl binary under the user's home directory without root access. Fresh records the files it writes, verifies updates against a checksum and GitHub release attestation, then swaps its own binary. Homebrew is the documented macOS path and winget covers Windows. Teams with supply-chain controls can inspect the shell installer or download a release asset rather than piping remote code into sh.

Update behavior still varies by package manager. Open issue 2918 documents unresolved cases including Flatpak's inability to invoke its own update command, npm updates that cannot cross a pre-1.0 minor through the chosen command, and older Nix versions that can exit successfully without upgrading. The issue also notes that no CI job exercises a complete update flow. Pinning v0.4.10 is reasonable for managed machines until each chosen channel is tested.

Worktrees isolate parallel coding-agent tasks

Fresh's Orchestrator gives each task its own git worktree, terminals, and long-running commands. It can retain resumable sessions for Claude, Codex, OpenCode, and Aider, and the dock switches between workspaces. This directly addresses a common failure mode: two agents editing one checkout can conflict even when they work on different branches. Filesystem isolation makes status and cleanup easier to reason about.

Version 0.4.10 added fresh --skill, which prints instructions for controlling a running editor from an embedded terminal. The same release stopped agent launches from writing an AGENTS.md into the user's repository and fixed Codex Auto mode so approved escalation can reach the editor's control socket. Those details show the agent integration is being tested against actual sandbox boundaries rather than treated as a marketing label.

Huge files work better than huge single lines

The README says Fresh handles multi-gigabyte files with low memory overhead and links to an engineering explanation. That claim concerns overall file size, not every file structure. Open issue 1806 reports that a huge one-line JSON or minified JavaScript file can make opening and cursor movement nearly hang. Generated JSON, bundled assets, database exports, and telemetry blobs should be tested with their worst line lengths before Fresh becomes an incident-response standard.

Remote editing has another specific edge. Issue 2944 says files writable by the remote user can be marked read-only when the local and remote numeric user IDs differ. Disabling automatic read-only detection is the reported workaround. Anyone relying on SSH workspaces should reproduce ownership combinations used in production, especially mode 0600 files, before an emergency edit depends on them.

Daily telemetry is optional, GPL-2.0 is not

Fresh checks for upgrades each day and sends its version, operating system, architecture, and terminal type. The README says it does not collect file contents or personal data. --no-upgrade-check or check_for_updates: false disables both the check and telemetry. Privacy-conscious organizations should set that in managed configuration instead of expecting every user to discover it.

The GPL-2.0 license is a separate adoption question for companies that modify or distribute the editor. GitHub showed 8,515 stars, 301 open issues and pull requests combined, and a last push on August 24, 2026. Release v0.4.10 arrived four days earlier with a long list of fixes across rendering, terminals, selections, packages, agents, and keymaps. The pace is strong, though pre-1.0 fleets should still pin versions.

Fresh is already credible as a daily editor. Our successful 16-second build and clean npm audit support an easy trial, while the missing measured test target keeps us from calling the snapshot fully verified. Choose Fresh for approachability and worktree-based multitasking, Helix or Neovim for modal depth, and Micro for a smaller editor.

Alternatives

ProjectWhat it isPick it when
Helix gh↗A terminal editor with built-in language-server and tree-sitter support around a selection-first modal model.pick this instead when you want a coherent modal language and will learn it.
Neovim gh↗A highly extensible modal editor with a vast plugin ecosystem.pick this instead when deep customization and Vim compatibility matter more than a ready-made interface.
Micro gh↗A friendly terminal editor centered on conventional shortcuts and mouse support.pick this instead when simplicity matters more than IDE and worktree features.

What people are saying

  1. [techcrunch-ai] Stability AI, maker of image generator Stable Diffusion, raises $76 million in fresh funding
  2. [theverge] Apple’s new Mac Mini has fresh M6 and M5 Pro chip offerings — and higher prices
  3. [theverge] Switched on Pop’s Nate Sloan and Charlie Harding love fresh vegetables and guitar pedals
  4. [github-trending] sinelaw/fresh

Sources

  1. Fresh README
  2. Fresh v0.4.10 release
  3. Large single-line file issue
  4. SSH permission issue
  5. Self-update gaps tracker

More dev tools reviews

navi · exodium · Submarine · Madeira · mitmproxy · fx · the whole board →