This skill should be used when the user asks to "store data in Nushell", "use stor command", "query SQLite", "work with parquet files", "save to database", "read CSV files", "convert JSON to parquet", "persist data between sessions", or mentions stor, SQLite, parquet, CSV, JSON, file formats, or data persistence in Nushell.
View on GitHubFebruary 1, 2026
Select agents to install to:
npx add-skill https://github.com/danielbodnar/nushell-dev/blob/main/plugins/nushell-dev/skills/nushell-storage/SKILL.md -a claude-code --skill nushell-storageInstallation paths:
.claude/skills/nushell-storage/# Nushell Storage & File Formats
Guide for data persistence, file format handling, and SQLite storage in Nushell. Covers the `stor` commands for in-memory SQLite, file format conversions, and efficient data storage patterns.
## The stor System
Nushell's `stor` provides an in-memory SQLite database accessible across commands:
```nushell
# Available stor commands
stor create # Create table
stor delete # Delete rows
stor export # Export to file
stor import # Import from file
stor insert # Insert rows
stor open # Open/create database
stor reset # Reset database
stor update # Update rows
help stor # Full documentation
```
### Creating Tables
```nushell
# Create table with schema
stor create --table-name users --columns {
id: int
name: str
email: str
created_at: datetime
active: bool
}
# View tables
stor open | schema
```
### Inserting Data
```nushell
# Insert single row
stor insert --table-name users --data-record {
id: 1
name: "Alice"
email: "alice@example.com"
created_at: (date now)
active: true
}
# Insert multiple rows from table
[[id, name, email]; [2, "Bob", "bob@example.com"], [3, "Carol", "carol@example.com"]]
| each { |row|
stor insert --table-name users --data-record $row
}
```
### Querying Data
```nushell
# Query with SQL
stor open | query db "SELECT * FROM users WHERE active = 1"
# Query with conditions
stor open | query db "SELECT name, email FROM users WHERE id > 1 ORDER BY name"
# Aggregations
stor open | query db "SELECT COUNT(*) as count, active FROM users GROUP BY active"
```
### Updating and Deleting
```nushell
# Update rows
stor update --table-name users --update-record {active: false} --where-clause "id = 1"
# Delete rows
stor delete --table-name users --where-clause "active = 0"
```
### Persistence
```nushell
# Export to SQLite file
stor export --file-name data.sqlite
# Import from SQLite file
stor import --file-name data.sqlite
# Reset in-memory database