Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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 .gitignore file 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"'