Skip to content

nealmick/ned

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Ned

Build Status macOS Debian Windows

A retro-style text editor with GL shader effects. NED offers Tree Sitter syntax highlighting, LSP integration, and a terminal emulator.

ned.demo.github.mp4

Shader Effects: Static Noise, Burn In, Screen Curvature, Bloom, Vignetting.

Amber Solarized
amber.github.mp4
solarized.github.mp4
Ned Custom
ned.github.mp4
custom.github.mp4

Notable Features

  • OpenGL Shaders with retro style for the best coding vibes
  • Text Bookmarks make editing multiple files with saved cursors a breeze
  • Rainbow mode cursor so you never lose your cursor and stand out
  • LSP Adapters for easy navigation and advanced language support
  • Terminal Emulator based on suckless st.c ported to C++ with multiplexer support
  • Optional Custom lexers and tokenizers for custom languages and obscure syntax patterns
  • Copilot-like auto complete using OpenRouter, choose the latest and best LLM models
  • Multi-cursor support, easily find and replace strings with multi selection

Build from source

Prerequisites

CMake (version 3.10 or higher) C++17 compatible compiler OpenGL GLFW3 Glew Curl

Clone the repository with its submodules:

git clone --recursive https://github.com/nealmick/ned
cd ned
git submodule init
git submodule update

#Mac OS Intel and ARM
brew install clang-format cmake llvm glfw glew pkg-config curl

#Ubuntu may require patching logic, currently un-tested
sudo apt install cmake libglfw3-dev libglew-dev libgtk-3-dev pkg-config build-essential libcurl4-openssl-dev clang-format mesa-utils

Building the Project

./build.sh

Create app package

./pack-mac.sh
./pack-deb.sh

# Bypass quarantine/translocation or you can sign it with your own apple dev acc
xattr -dr com.apple.quarantine Ned.app

Embed Ned in Your Dear ImGui Projects

embed.demo.github.mp4

Ned can be embedded in other ImGui applications, taking advantage of its text editor, file explorer, and terminal emulator. The embedded version also includes emoji support, themes, and much more. We have a demo repository that shows how to get started embedding the neditor into your projects.

About the Project

Ned is a feature-rich text editor built with Dear ImGui that combines the power of modern development tools with a lightweight, embeddable architecture. At its core, Ned provides a sophisticated text editing experience with Tree Sitter syntax highlighting supporting over 15 programming languages including C++, Python, JavaScript, Rust, Go, and more. The editor features custom lexer modes for specialized file types and includes advanced features like multi-cursor editing, line jumping, and a built-in file tree explorer.

The editor includes LSP integration with support for clangd, gopls, pyright, and TypeScript language servers, providing goto definition, find references, and symbol information. Ned also includes a terminal emulator and AI integration with OpenRouter support. The editor features emoji support with proper font rendering, custom shader effects, and a theming system. The project is designed to be embeddable in other ImGui applications through the ned_embed library, making it easy to integrate into your own projects.

Currently Ned is tested on macOS ARM and Intel. There is also a Debian build available. Windows is not supported, but hopefully will be added in the future.

If you have questions or issues, feel free to reach out.

πŸ‘· Work In Progress πŸ”¨

MCP Agent

Ned has an AI agent that uses OpenRouter to connect to the latest models. The agent can use MCP to call tools such as read file, run command, or edit file. The edit file tool uses a specialized model called Morph to apply code edits on large files at high speed with high accuracy, similar to Cursor. Check it out at morph.so. The whole system is tied into the settings where the key for the agent and completion model is stored. Below is a demo of the agent:

agent_compressed.mov

Multi Cursor

Ned has the ability to track multiple cursors at once, which can make editing in certain scenarios much easier. The multi cursor system is used for file content searches to spawn cursors at each instance of a text search string. The app also supports multi selection for selecting text with multiple cursors. The cursor also supports keybinds such as jump to line end or jump one word forward. Below is a demo:

multi-cursor_compressed.mov