"Quickstart: Claude Code"
Install the dsail package, run dsail init once, and let Claude Code compile and check a policy from the repository.
For a coding agent working in a repository. Turn a written policy into rules a program can check, keep the rules in the repo, and call the hosted service for every check.
1. Install
pip install dsail
dsail init
dsail init writes three things into the repository, all idempotent: a Claude Code skill at .claude/skills/dsail/SKILL.md carrying the authoring sequence and grammar, a dsail entry in .mcp.json that launches the stdio proxy dsail mcp, and a marked stanza in CLAUDE.md. Commit them; every later session, by anyone, finds DSAIL without being told.
Or install the plugin instead of scaffolding the repository — the same skill and the same server entry, for every repository you open. The public package repository is a Claude Code marketplace:
/plugin marketplace add JaxonAI/dsail
/plugin install dsail@jaxon
(pip install dsail first either way; the plugin's server entry launches dsail mcp.) A connector enabled in claude.ai also registers itself into Claude Code, so a team that has already added DSAIL there needs neither step.
2. One command
Ask Claude Code, in the repository:
Enforce our expense policy: receipts over 75 USD, nothing over 5,000 USD.
It restates the policy, asks you to confirm, writes policies/expenses.dsail, compiles it through the dsail_compile tool (the proxy forwards to the hosted REST door over HTTPS), and replays a few adversarial claim dictionaries against its own draft before showing you anything. An evaluation credential is obtained automatically on the first call; nothing to sign up for.
3. A result
dsail check policies/expenses.dsail --claims claims.json --summary
receipt_over_75 FALSE
within_cap TRUE
For review by a person, the agent calls dsail_open_review: the proxy starts the same review widget the chat clients render at a localhost link, opens your browser, and the agent repeats the link. Approval there is recorded on the service against the exact hash. dsail serve policies/expenses.dsail is the same page as a command.
What the agent gets
- The same
dsail_*tools the chat clients have, with the same descriptions — the proxy publishes the bundled definitions verbatim. - Results per assertion in four words,
TRUE,FALSE,UNKNOWN,AMBIGUOUS, and no overall verdict to invent. Unknown is an answer, not a guess. - A structured error on every failure, each carrying the
docsURL of the page that resolves it (Errors).
If the first call fails saying outbound network access is blocked, the message names the one-time organisation-level fix; relay it verbatim.
Sharing with colleagues
Saved rulesets belong to a workspace — yours, plus one per team you are in:
dsail login # once; the agent will tell you if you need it
dsail team create compliance
dsail team invite team-abc123 bob@acme.example # a single-use link you pass on yourself
dsail copy expenses --to compliance --from personal
dsail workspaces # where you can work, and where you are
dsail login exists because membership is about people, and the API key your programs carry names a workspace rather than somebody who can be asked. Signing in leaves that key exactly where it is. Full walkthrough: share policy rulesets with colleagues.
Next: Quickstart: REST for the production integration, or the REST API reference.