nickel-lang/nickel

Better configuration for less

View on GitHub ↗Jump to charts ↓Open shareable report →

Data as of . Signed-in members get hourly updates — create a free account.

Summary Information

Updated 2 hours ago
Added to GitGenius on September 23rd, 2026
Created on January 8th, 2019
Open Issues & Pull Requests: 160 (+0)
GitHub issues: Enabled
Number of forks: 118
Total Stargazers: 3,005 (+1)
Total Subscribers: 26 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 27.9 hours
Mean response time: 45.2 days
90th percentile: 73.4 days
Tracked items: 165

How this project is maintained

About 9% of issues opened in the past year have never received a reply. 48% of open issues come from outside the core team, a mix of external reports and the maintainers' own roadmap. Work labelled "type: bug" is answered fastest, typically in about 15 hours, while "type: feature request" waits about 9 days. Only 57% of issues opened in the past year have been closed. Three people close 94% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 61
New in 7 days: 1
Closed in 7 days: 0
Avg open age: 612 days
Stale 30+ days: 56
Stale 90+ days: 50

Recent activity

Opened in 7 days: 1
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • type: feature request (53)
  • type: bug (28)
  • area: cli (11)
  • area: lsp (9)
  • good first issue (8)
  • area: syntax (5)
  • area:stdlib (4)
  • area: typing (2)

Most active issues this week

Sign in to see which issues are moving.
Sign in

Detailed Description

Nickel is a configuration language that generates static configuration files in formats like JSON, YAML, and XML through templating and computation.

Nickel addresses the problem of automating complex configuration generation by treating configuration as code. It extends JSON with functions as first-class citizens, allowing configurations to be built compositionally. The language combines lightweight syntax with a gradual type system that lets developers choose when to apply static typing. Records serve as the basic data structure and can be merged together while preserving metadata like documentation, defaults, and type contracts. Contracts provide a principled validation mechanism similar to schemas, enabling runtime checking without requiring rigid static types for all configuration data.

Nickel suits projects that generate complex configurations across infrastructure, package management, and build systems. It works well for single applications, machine configurations, and entire infrastructure deployments. The language is particularly relevant for teams using or extending the Nix package manager, as Nickel is designed as an evolution of the Nix language addressing some of its limitations. The tool's lightweight design makes it easy to embed in other systems, and the reference interpreter can be called from multiple programming languages. Developers should choose Nickel when they need both the simplicity of a clear default path for common configuration tasks and the flexibility to extend beyond those defaults without arbitrary restrictions.

The project maintains active development with regular commits across its core interpreter and standard library. Pull requests receive timely review and feedback from maintainers. The codebase shows consistent attention to documentation and examples, with updates to guides and use-case documentation appearing alongside feature development. Issue discussions demonstrate engagement with user questions and feature requests, indicating responsive maintenance of the project.