Community-contributed modules for Duso, vetted and curated by the Duso team.
Contributed modules are:
To contribute a module to the curated registry:
Create a repository on GitHub (or similar) with your module
duso-<modulename>duso-postgres, duso-claude, duso-helpersImplement your module as a .du file
License it under Apache 2.0
Submit for review
Get accepted
If you're maintaining a custom Duso distribution, you can include contributed modules.
They work exactly like stdlib modules:
mymodule = require("mymodule")
result = mymodule.somefunction()
See Custom Distributions for how to build Duso with contrib modules included.
All contributed modules must:
Access Anthropic's Claude API directly from Duso scripts.
claude = require("claude")
// One-shot query
response = claude.prompt("What is Duso?")
// Multi-turn conversation
chat = claude.session(system = "You are helpful")
response1 = chat.prompt("First question")
response2 = chat.prompt("Follow-up")
chat.close()
See claude/claude.md for full documentation.
Simple CouchDB client with basic CRUD and Mango query support.
couchdb = require("couchdb")
db = couchdb.connect("http://localhost:5984", "duso")
// Create
db.put({_id = "user_1", name = "Alice", age = 30})
// Read
doc = db.get("user_1")
// Query with Mango
results = db.query({age = {$gt = 25}})
// Update
doc.age = 31
db.put(doc)
// Delete
db.delete("user_1", doc._rev)
See couchdb/couchdb.md for full documentation and examples.
Your duso-<modulename> repository should look like:
duso-mymodule/
├── mymodule.du # Main module file
├── mymodule.md # Full documentation
├── examples/
│ ├── basic.du
│ └── readme.md
└── readme.md # Getting started
See CONTRIBUTING.md for more details on contributing to Duso.