Quick start
Initialize your workspace
The easiest way to start is by running firm init in an empty directory:
mkdir my_workspace
cd my_workspace
firm init
This interactive command will help you set up your workspace by:
- Creating default schemas for common entity types (Person, Organization, Task, etc.)
- Adding a
.gitignorefile for Firm's graph files - Creating starter entities (you and your organization)
- Adding AI context documentation for AI coding assistants
Once initialized, your workspace is ready to use!
Add your first entity
Use firm add to generate new entities. The CLI will prompt you for the necessary info and generate corresponding DSL.
$ firm add
Adding new entity
> Type: organization
> ID: megacorp
> Name: Megacorp Ltd.
> Email: mega@corp.com
> Urls: ["corp.com"]
Writing generated DSL to file my_workspace/generated/organization.firm
You can also use firm add non-interactively by providing its type, ID and fields:
$ firm add --type organization --id megacorp --field name "Megacorp Ltd."
View your entities
Use firm list to see all entities of a specific type:
$ firm list organization
Found 1 entities with type 'organization'
ID: organization.megacorp
Name: Megacorp Ltd.
Email: mega@corp.com
Urls: ["corp.com"]
Query your data
Once you have a few entities, you can search and filter them using Firm's query language:
$ firm query 'from organization | where name contains "Mega"'