Skip to content
Configuration

Configuration

Nib projects are configured through plaintext files and per-project git config entries. Everything is human-readable and version-control friendly.

Git config

Nib stores per-project settings in git config. These are set automatically during nib init but can be changed at any time.

Agent selection

KeyEnv overrideDefaultDescription
nib.agentNIB_AGENTclaudeActive agent backend. Maps to nib-agent-<name> on PATH.
# Use the local model backend for this project
$ git config nib.agent local

Local agent settings

When using nib-agent-local, these settings configure the OpenAI-compatible endpoint:

KeyEnv overrideDefaultDescription
nib.agents.local.endpointNIB_LOCAL_ENDPOINThttp://localhost:1234/v1API endpoint URL
nib.agents.local.modelNIB_LOCAL_MODELlocal-modelModel name to request
nib.agents.local.no-thinkNIB_LOCAL_NO_THINKtrueDisable extended thinking
# Point at a remote inference server
$ git config nib.agents.local.endpoint http://my-server:9100/v1
$ git config nib.agents.local.model gemma-3-glitter-12b

Environment variables take priority over git config. See the Agent Protocol for details on building custom backends.

book.yaml

The book.yaml file is the heart of your project. It defines front matter metadata and the scene order for your manuscript.

title: "My Novel"
author: "Your Name"
language: en

chapters:
  - name: "The Beginning"
    scenes:
      - opening-scene
      - the-discovery
  - name: "Rising Action"
    scenes:
      - confrontation
      - the-chase

Front matter fields

FieldDescription
titleThe title of your novel
authorAuthor name, used in manuscript builds
languageLanguage code (e.g. en)
chaptersOrdered list of chapters, each containing an ordered list of scene slugs

When you use commands like nib chapter add or nib scene add, nib updates book.yaml automatically. You can also edit it by hand.

STYLE.md

The STYLE.md file captures your voice and prose style preferences. It’s used by the agent backend when running critique and copy-editing commands to ensure feedback aligns with your writing style.

Write it in plain Markdown. Describe things like:

  • Point of view and tense
  • Tone and register
  • Dialogue style
  • Vocabulary preferences or constraints
  • Any stylistic rules you follow

Character profiles

Character profiles live in the characters/ directory as YAML files. Create them with nib profile add:

$ nib pr ad elena

This creates characters/elena.yaml. A profile includes:

name: Elena Vasquez
age: 34
role: protagonist
description: >
  A marine biologist who left academia after a scandal
  involving fabricated data by her research partner.

personality:
  - determined
  - guarded
  - dry humor

background: >
  Grew up in coastal Ecuador. PhD from MIT.
  Now runs a small conservation nonprofit.

Character profiles are used by:

  • nib profile talk — for in-character conversations grounded in the profile
  • nib continuity index — to identify and track characters across scenes
  • nib manuscript critique — to check character consistency

Continuity database

The storydb/ directory holds CSV files with indexed continuity data: facts, characters, locations, and timeline events. These files are managed by nib continuity index and should not be edited by hand.

Appendices

The appendices/ directory is for supporting documents — research notes, worldbuilding details, reference material. These are not included in manuscript builds but are available to the agent backend during critique and continuity operations.