Neo
Neo is a new package manager for Nim, aiming to be fast and maintainable
Install / Use
/learn @xTrayambak/NeoREADME
neo

Neo is a new package manager for the Nim programming language. It aims to:
- Have a clean, maintainable codebase
- Be simple to use
- Fix everything Nimble does badly
- Be as fast as possible (this includes multithreading)
- Interoperate with the existing Nimble infrastructure so that packages using Neo can easily be uploaded to the Nimble index
- Using modern algorithms since we're not scared of breaking things (like using SHA-256 for hashing)
- Add infrastructure for "custom targets" like WASM
Support
You can join the Discord server here for help with Neo, or to follow its development.
Roadmap
Neo is currently a ~2.1K LoC project, and has the following features ready and working:
- [X]
neo buildcommand - [X]
neo runcommand - [X]
neo searchcommand - [X]
neo initcommand - [X]
neo searchcommand - [X]
neo infocommand - [X]
neo addcommand - [X]
neo testcommand - [X]
neo lockcommand - [X] Forge aliases
- [X] Dependency solver
- [X] Proper dependency management
- [X] Lockfiles
- [X] Dependency hash pinning
The following are pending tasks that will hopefully be completed soon:
- [ ] Tasks
- [ ] Hooks
Building Neo
Neo can be built using Neo itself, or via Nimble. To build it via itself, run:
$ neo build
Dependencies
- libcURL
- git
Usage
Creating a project
$ neo init myproject
Project Type:
1. Binary
2. Library
3. Hybrid
License: GPL3
Description: A super awesome Nim project
Backend:
> C
> C++
> JavaScript
> Objective-C
Building your project
$ neo build --arguments --here --are --passed --to --nim
Building myproject with the C backend
Searching for packages
$ neo search url
url A high-performance URL parser based on the WHATWG standard.
urlly URL and URI parsing for C and JS backend.
urlon URL Object Notation implemented in Nim
gurl A little lib for generating URL with args.
curly Makes using libcurl efficiently easy
unroll unroll for-loops (and map into seq/array) at compile-time in nim
curlies A macro for object construction using {} (curlies).
libcurl Nim wrapper for libcurl.
openurl Open Any Url/File in the default App / WebBrowser.
unrolled Unroll for-loops at compile-time.
urlshortener A URL shortener cli app. using bit.ly
dataUrl Easily create data urls! CLI included
shorturl Nim module for generating URL identifiers for Tiny URL and bit.ly-like URLs
osureplay osu! replay parser
surrealdb SurrealDB driver for Nim
... and 7 packages more (use --limit:<N> to see more)
Fetching information for a package
This causes the package to be downloaded, so that its additional metadata can be explored.
$ neo info jester
Downloaded jester@any
jester #web #http #framework #dsl
A sinatra-like web framework for Nim.
version: 0.6.0
license: MIT
documentation: https://github.com/dom96/jester
notice This project only has a `.nimble` file. If you own it, consider adding a `neo.toml` to it as well.
Related Skills
node-connect
342.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
85.3kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
342.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
342.5kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
