{"id":29482900,"url":"https://github.com/tauraamui/lilly","last_synced_at":"2026-02-12T21:33:03.895Z","repository":{"id":199364647,"uuid":"701493629","full_name":"tauraamui/lilly","owner":"tauraamui","description":"TUI editor and VIM/Neovim alternative","archived":false,"fork":false,"pushed_at":"2026-02-05T17:41:50.000Z","size":13133,"stargazers_count":431,"open_issues_count":13,"forks_count":9,"subscribers_count":8,"default_branch":"master","last_synced_at":"2026-02-06T03:37:15.560Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"V","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tauraamui.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"tauraamui","ko_fi":"tauraamui"}},"created_at":"2023-10-06T18:55:38.000Z","updated_at":"2026-02-05T19:31:37.000Z","dependencies_parsed_at":"2025-12-08T20:04:50.014Z","dependency_job_id":null,"html_url":"https://github.com/tauraamui/lilly","commit_stats":null,"previous_names":["tauraamui/lilly"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tauraamui/lilly","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tauraamui%2Flilly","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tauraamui%2Flilly/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tauraamui%2Flilly/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tauraamui%2Flilly/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tauraamui","download_url":"https://codeload.github.com/tauraamui/lilly/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tauraamui%2Flilly/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29381781,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T20:34:40.886Z","status":"ssl_error","status_checked_at":"2026-02-12T20:23:00.490Z","response_time":55,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-07-15T02:02:06.796Z","updated_at":"2026-02-12T21:33:03.890Z","avatar_url":"https://github.com/tauraamui.png","language":"V","funding_links":["https://github.com/sponsors/tauraamui","https://ko-fi.com/tauraamui"],"categories":["V","Applications"],"sub_categories":["Editors"],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"docs/lilly-banner.png\" width=\"445.4\" alt=\"Lilly\"\u003e\n  \u003cimg src=\"https://github.com/tauraamui/lilly/assets/3159648/270286b3-67a6-48ca-9b9c-4566f605ec66\" width=\"100%\" height=\"25px\"\u003e\n\u003c/div\u003e\n\n## A VIM-Like editor for your terminal (\u003ca href=\"https://discord.gg/N4UG2TfDfd\"\u003echat on Discord\u003c/a\u003e)\n\n\u003e [!IMPORTANT]\n\u003e Lilly is in a pre-alpha state, and only suitable for use by developers.\n\u003e This editor is technically usable, it is the exclusive editor used to work on itself,\n\u003e however many features are missing, and there is no guarantee of stable features or a lack of bugs.\n\u003e Features, bug fixes and issues are welcome.\n\n\u003e [!WARNING]\n\u003e (the master branch is currently in a slightly broken state, checkout commit bee9e01 for last known stable version)\n\n![Screenshot 2023-11-17 20 07 13](https://github.com/tauraamui/lilly/assets/3159648/12e893ce-0120-4eb4-9d54-71b1a076832c)\n\n![Screenshot 2023-12-01 21 01 45](https://github.com/tauraamui/lilly/assets/3159648/e9023db2-0214-49e1-baad-9a75aa22d291)\n\nAn editor designed as a batteries included experience, eliminating the need for plugins. So, basically Helix but for VIM\nmotions. The end vision is a one to one replacement/equivalent functionality for all VIM features, macros, motions, and more.\n\n## Current project state (as of Nov 2025)\n\n### Announcing PROJECT PETAL.\n\nGood news or bad news?\nThe bad news is that the refactoring efforts to migrate from line to gap buffer have stalled.\nThe good news is this is because thanks to the new [bobatea](https://github.com/tauraamui/bobatea)\nlibrary I have been working on, it has made a full from scratch re-write of the editor necessary and\ntotally worth it.\n\nBobatea is built ontop of Lilly's immediate mode TUI rendering backend which internally uses a double buffer\nbacking grid to provide efficient cell by cell rendering to the host terminal emulator. The only cells which\nare re-drawn by bobatea are ones that have changed. The underlying V standard library term.ui module has been\nmodified to provide separate loops for rendering and user input, and re-draws have been unchained to whiz up\nto whatever target FPS you want (Lilly asks for 60fps by default).\n\nThe libraries API has been intentionally designed to be a as close as possible experience to using the Go\nbased [bubbletea](https://github.com/charmbracelet/bubbletea), from both end users and the devs building with it.\n\n### tldr:\nLilly is being re-written from scratch in conjunction with a new TUI library intended to bring bubbletea to\nthe V community. If you would like to track this new implementation all the work is happening on the `petal` branch.\n\n## Milestone 1: A pre-alpha release\n\n### Targets:\n\n- [ ] Gap buffer to replace string array\n- [x] Within line visual mode (kind of)\n- [ ] Fix found search result highlighting\n- [ ] Horizontal scrolling\n- [ ] Splits (horizontal + vertical)\n- [ ] Goto def\n- [x] List of active but not open buffers\n- [x] Search/Find files\n- [ ] Workspace wide search (ripgrep + roll your own)\n\n## How to build (requires the V compiler https://vlang.io)\n\n#### Build lilly by executing\n\t./make.vsh build-prod\n\n#### or run with no binary build with\n\t./make.vsh run\n\nYou can see what other tasks are available to run with `./make.vsh --tasks`\n\n(you can compile make.vsh into a binary to make executing tasks as fast as possible, use `./make.vsh compile-make` or `v -prod -skip-running make.vsh`)\n\n### Not convinced?\n\nNot a problem, Neovim/VIM are fantastic existing projects and are freely available for you to use today.\n\n### misc + extra information\n\n### radicle.xyz remote\n\nThe Lilly project is also hosted by (approx minimum 20 seeds) on the decentralised peer-to-peer git host network \"Radicle\".\nIf you would like to contribute using that instead of Github then please clone with:\n`rad clone rad:zENt7TUiNcnJSf9H371PZ66XdgxE` and then submit a patch in the usual git way but using the rad toolchain (see https://radicle.xyz/guides/user#working-with-patches)\n\nFeel free to also raise issues here, I will hopefully remember to check the inbox frequently.\n\n\n### memleak checks\n\nOn macOS we get this output from running:\n\n`leaks --atExit -- ./lilly .`\n\n```\nlilly(53176) MallocStackLogging: could not tag MSL-related memory as no_footprint, so those pages will be included in process footprint - (null)\nlilly(53176) MallocStackLogging: recording malloc and VM allocation stacks using lite mode\nProcess 53176 is not debuggable. Due to security restrictions, leaks can only show or save contents of readonly memory of restricted processes.\n\nProcess:         lilly [53176]\nPath:            /Users/USER/*/lilly\nLoad Address:    0x10294c000\nIdentifier:      lilly\nVersion:         0\nCode Type:       ARM64\nPlatform:        macOS\nParent Process:  leaks [53172]\n\nDate/Time:       2024-12-05 11:07:02.409 +0000\nLaunch Time:     2024-12-05 11:06:46.429 +0000\nOS Version:      macOS 13.2.1 (22D68)\nReport Version:  7\nAnalysis Tool:   /usr/bin/leaks\n\nPhysical footprint:         4513K\nPhysical footprint (peak):  4529K\nIdle exit: untracked\n----\n\nleaks Report Version: 4.0, multi-line stacks\nProcess 53176: 226 nodes malloced for 22 KB\nProcess 53176: 0 leaks for 0 total leaked bytes.\n```\n\nLook at that. 0 memory leaks.\n\n(experimental GUI render target)\n\n![Screenshot 2023-12-13 21 10 40](https://github.com/tauraamui/lilly/assets/3159648/17ec7286-ecc2-4e68-addd-9c503afd45ee)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftauraamui%2Flilly","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftauraamui%2Flilly","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftauraamui%2Flilly/lists"}