Lonelog

by Snifer
5
4
3
2
1
Score: 50/100

Description

Streamline your solo and group TTRPG journaling with quick shortcuts for Lonelog notation - the standard notation system for solo RPG session logging.

Reviews

No reviews yet.

Stats

19
stars
3,767
downloads
6
forks
107
days
2
days
2
days
5
total PRs
0
open PRs
1
closed PRs
4
merged PRs
35
total issues
5
open issues
30
closed issues
111
commits

Latest Version

3 days ago

Changelog

Bug Fixes & Refactoring

  • Fix dice parsing when using negative modifiers and context tags (closes #42).
  • Migrate DOM creation across all views and widgets to native Obsidian createEl, createDiv, and createSpan helpers.
  • Fix unnecessary type assertions and ESLint configuration.

README file from

Github

Lonelog for Obsidian - Solo TTRPG Journaling

Obsidian version license GitHub Downloads Ko-fi

Lee esto en Castellano: README-es.md

Lonelog Obsidian Plug-in Logo

Lonelog for Obsidian streamlines your solo and group TTRPG journaling by bringing the Lonelog notation standard into your vault and extending it with the Partylog add-on for group-session notes. Focus on the story while keeping mechanics organized, visual, and fast.

Main Features

1. Smart Notation System

Quickly insert Lonelog core symbols using the Command Palette or custom hotkeys:

  • @ Action
  • ? Oracle Question
  • d: Dice Roll
  • -> Result
  • => Consequence
  • [Tag:Name|Attributes] Entity tags for NPCs, locations, PCs, and more

2. Campaign and Session Management

  • Automatic headers to create campaign and session structure instantly
  • Scene markers with automatic scene numbering and optional context prompts
  • Code blocks with lonelog rendering support
@ The character investigates
d: 1d6 -> 5
-> Something suspicious happens.

3. Interface and Highlighting

  • Syntax highlighting in Live Preview and Reading Mode
  • Color customization for every Lonelog token
  • Dedicated views for progress, threads, scenes, combat, dungeon, and resources

4. Add-ons

  • Combat: rounds, combat blocks, foe tracking
  • Dungeon crawling: room state tracking and dungeon status
  • Resource tracking: inventory and wealth management
  • Partylog: group-session notation using ```partylog blocks and a dedicated Partylog dashboard
  • Card drawing and advanced dice notation

5. Other Features

  • Autocomplete based on previously mentioned entities
  • Internationalization in English and Spanish
  • Public API v1 with JSON-friendly normalized outputs for external plugin integrations

Installation

BRAT

  1. Install the BRAT plugin.
  2. In BRAT settings, click Add Beta Plugin.
  3. Enter https://github.com/Snifer/lonelog.
  4. Enable Lonelog in Settings -> Community Plugins.

Manual Installation

  1. Clone or copy the release files into .obsidian/plugins/lonelog/.
  2. Reload Obsidian.
  3. Enable Lonelog in Settings -> Community Plugins.

Community Plugins

Usage

  1. Open any note.
  2. Press Ctrl/Cmd + P to open the command palette.
  3. Type Lonelog to see insertion and management commands.
  4. Assign hotkeys in Settings -> Hotkeys for faster logging.

Partylog add-on

Lonelog now includes an optional Partylog add-on for group-session notes.

Quick path:

  1. Enable Partylog add-on in plugin settings.
  2. Write Partylog notation inside fenced partylog code blocks.
  3. Open Partylog Dashboard from the view selector or command palette.

Example:

```partylog
@(Kael) Sneak past the guard
d(Kael): Stealth d20+5=8 vs DC 14 -> Fail
=> Kicks a bottle. Guard turns!
! Guard draws his blade and advances
```

Current Partylog dashboard tabs:

  • Overview
  • Scenes
  • Threads
  • Timeline
  • Roster
  • Recap

Development

npm install
npm run dev
npm run build

Public API

Lonelog exposes a public API v1 for interoperability with other Obsidian plugins through the plugin instance.

Example:

type LonelogApi = {
  apiVersion: "1";
  parse: {
    content(content: string): unknown;
    file(file: TFile): Promise<unknown>;
    isLonelogNote(target: TFile | string): Promise<boolean>;
  };
  tokenize: {
    line(line: string): unknown[];
    lines(lines: string[]): unknown[][];
  };
  settings: {
    get(): Record<string, unknown>;
  };
  views: {
    openDashboard(): Promise<void>;
  };
};

const lonelogPlugin = app.plugins.plugins["lonelog"] as { api?: LonelogApi } | undefined;

const api = lonelogPlugin?.api;
if (!api || api.apiVersion !== "1") return;

const parsed = api.parse.content("[N:Jonah|friendly]");
const tokens = api.tokenize.line("=> [N:Jonah|friendly]");

await api.views.openDashboard();

Current V1 scope:

  • adapters.content
  • adapters.file
  • adapters.activeFile
  • capabilities.get
  • addons.getStatus
  • dungeon.*
  • resources.*
  • combat.*
  • progress.*
  • partylog.*
  • info.get
  • info.getModules
  • info.getStabilityPolicy
  • errors.codes
  • errors.isLonelogApiError
  • events.on/off/offref
  • domain events for progress/resources mutations
  • write helpers for dungeon/partylog
  • deeper inventory + structured partylog tag mutations
  • combat write api + partial dungeon mutations
  • fine-grained helper lookups
  • json-friendly normalized outputs
  • parse.content
  • parse.file
  • parse.isLonelogNote
  • parse.partylog.content
  • parse.partylog.file
  • parse.partylog.hasBlocks
  • tokenize.line
  • tokenize.lines
  • settings.get
  • views.open...

Full guide (English): lonelog-api.md

Full guide (Spanish): lonelog-api-es.md

API changelog: lonelog-api-changelog.md

License

This plugin is licensed under the 0-BSD License. See LICENSE for details.

The Lonelog notation system is © 2025-2026 Roberto Bisceglie, licensed under CC BY-SA 4.0.

Support

If this project adds value to your gaming table, you can support the developer with a donation via PayPal or Ko-fi.

Donate Ko-fi

Credits