A code editor for Mac

Carry less.

Litecode is a code editor that stays out of your way. Open a folder. Press ⌘P. Write.

Free · macOS 13 or later

Open a folder. Write. Run. That's the whole idea.

Try it

Find anything in four keystrokes.

A working copy of ⌘P. Type part of a name, or part of a path, or both. The name wins.

project12 files
    ↑ ↓ to move · Return to openTry expl, tests/idx, or win
    Try it

    Drop a file. See its neighbors.

    Grab the file below and drop it on the editor. It doesn't have to live in your project. Wherever it came from, the files around it are right there.

    notes.txt from Desktop
    projectNothing open
    PROJECT
    Drop a file here
    Drag the file onto the editor
    Try it

    Review a commit in a glance.

    Every file is a closed row. Open the ones you care about, or all of them.

    parser: Handle empty input without a crashdb48749
    3 files changed +9 −1
    Click a row to open its changeAdded lines on green, removed on red

    Everything you reach for.

    And not one thing you don't.

    A real file tree

    Open a folder and it's the root. Folders open and close as you click. A single click previews a file in an italic tab the next one replaces.

    Go to file

    One key, a field over your project, and the file you meant. Match the name, the path, or letters of both.

    Neighbors on arrival

    Drop a file from anywhere and the folder around it appears. Drop a folder and it becomes your workspace.

    Its own past

    Step back through any file's git history without leaving it, and come back to exactly where you were. Litecode only ever reads history.

    A panel for output

    Run a command under your editor and watch it print. Stop it with one key. The commands you ran are one arrow away.

    Color, no waiting

    Swift, TypeScript, JavaScript, C++, Python, JSON, shell (dotfiles too) and nginx. Colors come in the background, so typing never waits on them.

    Yours until you say

    Nothing is written until you press ⌘S. Close a tab or quit with changes and it asks, in the window, never behind your back.

    Big files, calmly

    Open files into the tens of megabytes. A line too long to lay out safely turns off wrapping and color, and says so.

    Who wrote this line

    The age and author of the line you're on, in the status bar and right after the line. Rest the pointer on it for the whole commit message. Read from git, never written to it.

    Come back to it

    Mark a line with one key. Step to the next or the previous, in this file or the next one. Marks follow their lines as you edit, and wait for you between launches.

    Numbers, quietly

    A gutter of line numbers that works out only what's on screen, so a very large file scrolls as easily as a small one.

    The log, a click away

    The git log lists in the left pane where the Explorer was. Pick a commit and it opens in the main pane, with its message, its author and what it changed.

    Review at a glance

    Every changed file is a closed row with its counts. Open one for a change in red and green, or open them all with a click.

    One strip, more to come

    A narrow strip along the left edge holds a view per icon: your files, the git log, search, and your remote machines. The pointer is a hand over them, as it should be.

    Search, here or there

    Type, press Return, and the matches fill in grouped by file. Case and regular expressions are a click each. On a machine, only the matches travel.

    Over ssh

    Save a machine and its folders open in a pane. Click a file, edit it, save it back. Your keys, your ssh config, nothing installed on the other end. Go to file, search, the log and blame work there too.

    Options, inside the window

    One key opens a page of settings over the editor, not a window of its own. Turn the note after the line off, and it stays off.

    Quiet

    No account. No analytics. No update ping. No network code of its own: a machine you connect to is reached by your Mac's own ssh, because you asked.

    Soon

    Two keys we're not
    telling you about yet.

    You'll know the moment you press them.

    Soon
    ⌘R
    Soon
    ↩

    An editor that stays out of the way.

    A look at the field in general, one box at a time.

    Litecode compared with code editors in general
    The fieldLitecode
    A real Mac app, not a web wrapperSome
    Makes no network connections of its ownRarely
    No account, no sign-inSome
    Never saves a file you didn't tell it to saveSome
    Drop a file from anywhere and see its neighborsRarely
    Go to a file by name or by pathOften
    Step through a file's git history in placeRarely
    Who last changed the line you're on, at a glanceRarely
    Bookmarks you can step through, across filesRarely
    Review a commit's files as closed rows that open to a colored changeSome
    Edit files over ssh with nothing installed on the machineSome
    An output panel for running commandsOften
    Syntax colors without a language serverSome

    Compared with code editors in general, not any one app. Many of them do some of this, and extensions or plugins fill in more; "Some", "Often" and "Rarely" describe how common each is out of the box. Features vary by app and version. Litecode doesn't have a language server, a debugger or a plugin system yet; see the questions below.

    Fair questions.

    Is Litecode free?

    Yes. No subscription, no account, no trial that runs out.

    Is it light?

    Yes, on purpose. It's a native Mac app built on the frameworks already on every Mac, so it doesn't carry a web browser or a runtime around with it: nothing to wait for at launch, and nothing running when you aren't.

    Does it phone home?

    No. There are no analytics, no crash reporter, no update check and no network code of its own. Commands you run in the output panel can use the network, because they're yours. If you connect to a machine over ssh, your Mac's own ssh makes that connection, because you asked, and nothing connects at launch.

    Does it save my files for me?

    Never. A file is written when you press ⌘S. Closing a tab or quitting with unsaved changes asks first, inside the window. If a file changes on disk while you're editing it, Litecode asks before overwriting.

    Which languages get colors?

    Swift, TypeScript, JavaScript, C and C++ (and Objective-C), Python, JSON, shell scripts (including .bashrc, .zshrc and any script whose first line names its interpreter) and nginx configuration. Everything else opens as plain text.

    Does it work over ssh?

    Yes. Save a machine, click one of its files to open it, and save to send it back. It uses your Mac's own ssh, so your keys, your agent and your ssh config work as they do in Terminal, and nothing is installed on the machine. Go to File, search, the git log and blame work there too, and the output panel runs commands on that machine.

    What doesn't Litecode do?

    It isn't a plugin platform, a debugger or a language server client yet, so there's no completion popup or go-to-definition. There are excellent tools for those, and nothing stops you using them on the same folder. Litecode is the part you open a hundred times a day.

    Do I need git?

    Only for file history, blame, the git log and the commit view. Git comes with Apple's Command Line Developer Tools, and on a machine you connect to, its own git is used. Litecode only reads from it; it never commits on its own.

    How big a file can it open?

    Up to 64 MB. A file with a line so long it would stall the window opens with wrapping and colors turned off, and says so.

    Can I use my own folder, my own repo, my own tools?

    That's the point. A folder is just a folder, and a file is just a file. Nothing is kept in a project database or a hidden settings folder of its own.

    What Mac do I need?

    A Mac running macOS 13 Ventura or later.

    What's coming next?

    Soon.

    Open it.
    Write something.
    Barely notice it's there.

    Free · macOS 13 or later