Deterministic · Verified · Zero-Token

The deterministic
function registry

Install verified, tested function packs. Pure math and logic — no LLM calls, no tokens burned, no hallucinations. Every function has a test proving it works.

$ nanosistant install music-theory-core
Browse all packs
16
Function Packs
211
Total Functions
100%
Avg Test Coverage
0
Tokens Required
840
Tests Passing

Featured Packs

View all

Browse by Category

Trending This Week

Get started in one command

Install any pack directly from your terminal. Zero configuration, instant access to verified functions.

$ nanosistant install <pack-name>

Contribute a Pack

Browse Packs

Discover verified, deterministic function packs for Nanosistant.

Contribute a Function Pack

Ship verified, deterministic functions to the community. Three steps, one PR — your logic, tested and shared.

1

Define your pack

Create a pack.toml manifest describing your pack, its functions, and metadata.

[pack] name = "my-awesome-pack" version = "0.1.0" author = "your-name" tier = "Domain" domain = "music" description = "Short description"
2

Write your functions

Implement deterministic functions in TOML rules (low friction) or Rust (power users). No LLM calls — pure logic.

# rules.toml — the easy path [[rule]] name = "bpm_to_ms" input = "bpm: f64" output = "f64" formula = "60000.0 / bpm" description = "Convert BPM to ms"
3

Test & submit

Every function needs a test proving it works. Run the test suite, then open a PR to the packs repo.

# Run tests $ nanosistant test my-awesome-pack ✓ bpm_to_ms(120) == 500.0 ✓ bpm_to_ms(140) == 428.571... ✓ All 2 tests passing # Submit via PR $ git push origin my-awesome-pack

pack.toml format

The manifest file that describes your pack to the registry.

pack.toml
[pack] name = "music-theory-core" version = "0.6.0" author = "nanosistant" tier = "Domain" # Universal | Domain | Operator domain = "music" description = "Scale degrees, chord-to-roman, BPM math..." tags = ["music", "theory", "production"] [compatibility] nanosistant_min = "0.6.0" [routing] keywords = ["scale", "chord", "bpm", "tempo"] semantic = "Music theory calculations and analysis"

rules.toml format

The low-friction path — define functions as TOML rules. No Rust knowledge needed.

rules.toml
[[rule]] name = "bpm_to_ms" input = "bpm: f64" output = "f64" formula = "60000.0 / bpm" description = "Convert BPM to milliseconds per beat" [[rule]] name = "delay_time" input = "bpm: f64, subdivision: &str" output = "f64" formula = "match subdivision { \"1/4\" => 60000.0/bpm, \"1/8\" => 30000.0/bpm, _ => 0.0 }" description = "Calculate delay time for a given BPM and note subdivision" [[test]] function = "bpm_to_ms" input = "120.0" expected = "500.0"

functions.rs format

For power users — write functions in Rust for maximum performance and type safety.

functions.rs
use nanosistant_sdk::{function, NstnResult}; /// Convert BPM to milliseconds per beat #[function] pub fn bpm_to_ms(bpm: f64) -> NstnResult<f64> { if bpm <= 0.0 { return Err("BPM must be positive".into()); } Ok(60000.0 / bpm) } #[cfg(test)] mod tests { use super::*; #[test] fn test_bpm_to_ms() { assert_eq!(bpm_to_ms(120.0).unwrap(), 500.0); assert_eq!(bpm_to_ms(140.0).unwrap(), 428.571428571); } }

Test Requirements

Every function pack must include tests. No exceptions — this is the trust signal that separates NSTN Hub from prompt marketplaces.

  • Every exported function must have at least one test
  • Tests must use concrete expected values — no fuzzy matching
  • Edge cases: zero, negative, empty, and boundary inputs
  • CI runs all tests on every PR — failures block merge
  • Target 100% test coverage for maximum quality score

Ready to contribute?

Use the visual form builder to create and submit your pack — no git commands needed.

Open Pack Builder View on GitHub

Pack Builder

Fill in the form — we generate the TOML, validate it, and open the PR for you.

Pack Metadata

Lowercase, hyphens only — e.g. music-utils
Auto-filled from your GitHub login

Functions

README (optional)

Live Preview
# Fill in the form to generate pack.toml
# Add TOML rules to see rules.toml preview