vaults
Scannednpx machina-cli add skill CaseMark/legal-plugin/vaults --openclawcase.dev Vaults
Encrypted document storage with automatic OCR, chunking, and semantic search. Each vault is an isolated container for a case, project, or document collection.
Requires the casedev CLI. See setup skill for installation and auth.
Create a Vault
casedev vault create --name "Smith v Jones Discovery" --description "Phase 1 documents" --json
Flags:
--name/-n(required)--description/-d--disable-graph— skip knowledge graph construction--disable-indexing— skip automatic ingestion (upload-only mode)
List Vaults
casedev vault list --json
casedev vault list --wide --json # includes description column
Get Vault Details
casedev vault get VAULT_ID --json
Also accepts focused vault if set via casedev focus set --vault VAULT_ID.
Upload Files
Single file
casedev vault object upload ./contract.pdf --vault VAULT_ID --json
Flags: --name (override filename), --content-type, --no-ingest (skip indexing).
Directory (recursive)
casedev vault upload ./discovery-docs/ --vault VAULT_ID --json
Preserves folder structure. Each file gets a presigned URL upload with confirmation. Use --no-ingest to upload without triggering indexing. Use --content-type to force a MIME type for all files.
List Objects in a Vault
casedev vault object list --vault VAULT_ID --json
Returns: object ID, filename, ingestion status, size.
Download Files
# Download a single object
casedev vault download --vault VAULT_ID --object OBJECT_ID --out ./output/ --json
# Download all objects
casedev vault download --vault VAULT_ID --out ./all-docs/ --json
# Download by path prefix
casedev vault download --vault VAULT_ID --path "exhibits/" --out ./exhibits/ --json
Semantic Search
casedev search vault "force majeure clause" --vault VAULT_ID --json
Search methods:
--method hybrid(default) — combines vector + keyword search--method fast— keyword-only, faster--method global— cross-vault if supported
Additional flags:
--limit/-l— max results (default 10)--object OBJECT_ID— restrict search to specific object(s), repeatable
Returns: answer summary, source documents, matching chunks with page ranges and scores.
If hybrid mode returns a server error, retry with --method fast.
Common Workflows
Upload and search a case file set
# 1. Create vault
casedev vault create --name "Acme v Beta" --json
# 2. Upload documents
casedev vault upload ./case-files/ --vault VAULT_ID --json
# 3. Wait for ingestion (check object status)
casedev vault object list --vault VAULT_ID --json
# 4. Search
casedev search vault "indemnification obligations" --vault VAULT_ID --json
Focus workflow (skip --vault on every command)
casedev focus set --vault VAULT_ID
casedev vault object list --json
casedev search vault "damages calculation" --json
casedev vault download --object OBJ_ID --out ./downloads/ --json
Troubleshooting
"Missing vault ID": Provide --vault VAULT_ID or set focus with casedev focus set --vault VAULT_ID.
Upload fails with HTTP 4xx: Check file size (max 500MB per object), verify vault ID exists, confirm auth.
Search returns no results: Ensure objects have completed ingestion (status: "completed" in object list). Try --method fast if hybrid fails.
Overview
Vaults provides encrypted document storage for legal workflows with automatic OCR, chunking, and semantic search. It supports creating vaults, uploading files or directories, listing and downloading objects, and performing semantic search across vault contents. Each vault is an isolated container for a case, project, or document collection managed via the case.dev CLI.
How This Skill Works
Create a vault with the casedev vault create command, supplying a name and optional description. Upload files or directories (recursively) to the vault, with options to preserve folder structure, set content-type, or skip ingestion. Perform semantic searches using casedev search vault with method options (hybrid, fast, global); results include an answer summary, sources, and matching chunks with page ranges and scores.
When to Use It
- When starting a new matter and need an encrypted vault for all related documents.
- When uploading a single document to an existing vault.
- When uploading an entire discovery/docs folder and preserving folder structure.
- When you need to download one or all objects from a vault.
- When you want to semantically search vault contents for a specific clause or topic.
Quick Start
- Step 1: Create vault: casedev vault create --name "Acme v Beta" --json
- Step 2: Upload documents: casedev vault upload ./case-files/ --vault VAULT_ID --json
- Step 3: Search: casedev search vault "indemnification obligations" --vault VAULT_ID --json
Best Practices
- Use descriptive vault names and descriptions to simplify future searches.
- Use --no-ingest for large batches to upload without triggering indexing until ready.
- Check object ingestion status with vault object list before running searches.
- Use the focus workflow to avoid repeating --vault on every command.
- Set MIME types with --content-type when appropriate and mind the 500MB per object limit; handle 4xx errors gracefully.
Example Use Cases
- Create a vault for a case and upload a full case-files folder, then run a search for indemnification obligations: casedev vault create --name "Smith v Jones Discovery" --json; casedev vault upload ./case-files/ --vault VAULT_ID --json; casedev search vault "indemnification obligations" --vault VAULT_ID --json
- Upload a discovery-docs directory while preserving folder structure: casedev vault upload ./discovery-docs/ --vault VAULT_ID --json
- List vault objects to verify ingestion status: casedev vault object list --vault VAULT_ID --json
- Perform a semantic search across a vault for a specific clause using hybrid default: casedev search vault "force majeure clause" --vault VAULT_ID --json
- Download all documents from a vault to a local folder: casedev vault download --vault VAULT_ID --out ./all-docs/ --json