A lightweight, production-ready .NET library for building dynamic prompt templates with clean, fluent APIs.
No AI dependencies. No vendor lock-in. Just clean prompt composition.
AI apps constantly suffer from:
- messy string templates
- duplicated prompts
- hard-to-debug variable issues
- no prompt version control
- unclear final output
PromptKit solves this.
- Fluent prompt builder API
- File-based prompt loading
- Object/model binding
- Prompt composition system
- Debugging & diagnostics tools
- Token estimation helper
- Serialization support (JSON)
- Fully testable architecture
- No external dependencies
dotnet add package ManuHub.PromptKitusing ManuHub.PromptKit;
var result = Prompt.From("Hello {{name}}")
.Set("name", "Manoj")
.Render();
Console.WriteLine(result);Output:
Hello Manoj
var prompt = PromptLoader.Load("prompts/email.prompt")
.Set("name", "Sarah")
.Set("body", "Welcome!")
.Render();
email.promptcontent:
Subject: Welcome, {{name}}!
Body: Hi {{name}},\n\nWelcome to our service!\n\nBest regards,\nThe Team
Output:
Subject: Welcome, Sarah!
Body: Hi Sarah,
Welcome to our service!
Best regards,
The Team
var result = Prompt.From("Hello {{name}}")
.SetModel(new { name = "Alex" })
.Render();Output:
Hello Alex
var final = PromptComposer.Combine(
Prompt.From("System: You are helpful assistant."),
Prompt.From("User: Summarize {{text}}").Set("text", article)
);Output:
System: You are helpful assistant.
User: Summarize [article content]
var debug = Prompt.From("Hello {{name}}")
.Debug();
Console.WriteLine(debug.FinalPrompt);
Console.WriteLine(string.Join(",", debug.MissingVariables));Output:
Final Prompt: Hello {{name}}
Missing Variables: name
var tokens = prompt.EstimateTokens();Output:
Estimated tokens: 5
var json = PromptSerializer.ToJson(prompt);
var restored = PromptSerializer.FromJson(json);Output:
Serialized Prompt: {"Template":"Hello {{name}}","Variables":{"name":"Manoj"}}
Restored Prompt: Hello {{name}}
Fully covered with xUnit tests.
dotnet test- Immutable Prompt core
- Snapshot-based serialization
- Fluent API design
- Zero dependency design
- Prompt caching system
- Prompt versioning system
- Prompt performance profiler
- Memory extension package (PromptKit.Memory)
MIT