Pilog

documentation

Getting started

Pilog is a global-hotkey scratchpad and a local inbox that turns rough notes into repo-aware GitHub issue drafts. This guide installs the app, connects it to GitHub and the Pi draft agent, and walks you through the loop from capture to publish.

Step 01

Download & install

v0.1.0-preview.5Release notes

Download

Open the .dmg, drag Pilog to Applications, and launch from Spotlight or Launchpad.

The first stable release hasn't shipped yet, so the card above offers the current preview build. Preview builds are feature-complete but unsigned, so your OS will show a security warning on first launch. See all preview downloads for older versions.

System requirements

  • macOS 12 Monterey or later; Apple Silicon or Intel. Allow Pilog to use Keychain when prompted.
  • Windows 10 or later. Git for Windows must be installed and on your PATH before linking a repository.
  • Linux needs git from your distribution and a desktop keyring (GNOME Keyring or KWallet via libsecret) for credential storage. Headless sessions, minimal containers, and some WSL2 setups do not expose a keyring.

Step 02

First launch

The first time you open Pilog it walks through a short onboarding: confirm the global hotkey, sign in to GitHub, link a local repository, configure the Pi draft agent, capture a note, and generate your first draft. You can skip onboarding and return to any step from Settings.

  1. Confirm or rebind the global capture hotkey. Default is CtrlSpace. The hotkey is registered against your OS, so it works whether or not Pilog has window focus.
  2. Connect GitHub (next step).
  3. Link one local repository (the folder on disk you intend to file issues against).
  4. Configure the Pi provider and model (further down this page).
  5. Capture a quick note with the hotkey to confirm the loop works end-to-end.

Step 03

Connect GitHub

Pilog signs into GitHub using the Device Flow. When you click Sign in, Pilog opens GitHub in your browser, you authorize the app, and the access token is stored in OS-backed credential storage (Keychain on macOS, DPAPI on Windows, the keyring on Linux). No personal access token is required.

The OAuth scope is the minimum needed to read repository metadata and create issues on your behalf. Sign out from Settings → Account at any time; the token is wiped from keychain immediately.

Step 04

Configure Pi

Pi is the local agent harness that reads your selected notes alongside the active repository and produces structured issue drafts. Pilog bundles the Pi runtime; you choose the provider and model. A cloud API is the default path; for inference that never leaves your machine, use a local model via Ollama (recommended) or another OpenAI-compatible local server.

Recommended: Anthropic as the provider and claude-sonnet-4-6 as the model. Sonnet 4.6 reasons well over rough developer prose, follows the issue-draft schema reliably, and stays inside the latency budget for an interactive review session.

In Pilog, open Settings → Provider & Model and:

  1. Pick Anthropic from the provider dropdown.
  2. Pick claude-sonnet-4-6 from the model dropdown.
  3. Paste your Anthropic API key. Get one at console.anthropic.com/settings/keys . Create a workspace if you don't have one, then Create Key. Keys start with sk-ant-….
  4. Click Configure Pi. The key is stored in OS-backed safe storage, separate from Pilog's SQLite database.

Already use the pi CLI on this machine? Click Import existing Pi config on the setup panel and Pilog will pick up provider credentials from ~/.pi/agent/auth.json without you re-entering anything.

Step 05

Your first note

Press CtrlSpace from anywhere. A quiet markdown scratchpad opens; type the thought as it occurs to you. No fields, no repo selector, no priority picker. Save with CtrlS or simply close the window. The note lands in your inbox.

Notes are plain markdown. Links, code fences, lists, and inline backticks all render in the draft generator's context. You can edit, retitle, or delete a note from the inbox at any time.

Step 06

Generate drafts

Open the inbox (Ctrl1), select one or more notes belonging to the same linked repo, and press GD, or click Generate Drafts. Pi reads the notes alongside repository metadata, groups related ideas, and writes structured issue drafts with titles, bodies, suggested labels, affected files, and a confidence signal.

Every draft is visibly anchored to the notes that produced it. The reasoning summary is short by design; the raw source notes are never hidden behind an expander by default. If the agent grouped two notes you wanted to keep separate, you can split a draft and regenerate just that subset.

What gets sent

When you generate drafts, Pilog sends the selected notes and a bounded slice of repository context (file tree, README excerpts, language signals) to your configured Pi provider (your machine with Ollama or similar, otherwise the vendor's API). Drafts and the full run transcript are saved locally. Nothing is sent until you click Generate.

Shortcuts

Pilog is keyboard-first. Every triage and review action has a shortcut; the mouse is a courtesy. The few you'll learn first:

Global

  • CtrlSpaceOpen the scratchpad anywhere
  • Ctrl1Open Inbox
  • Ctrl2Open Drafts
  • CtrlKOpen command palette

Inbox & Drafts

  • JMove to next item
  • KMove to previous item
  • GDGenerate drafts from selection
  • CtrlPublish the draft you’re reading
  • EscStep back, clear selection, or close

Editor

  • CtrlSSave the current note or draft

Ctrl is on macOS, Ctrl on Windows and Linux. All shortcuts are rebindable from Settings → Shortcuts.

Pi, in depth

Anthropic + Claude Sonnet 4.6 is the recommended setup, but Pi is a model-agnostic harness. You can switch providers at any time from Settings without re-onboarding.

Model catalog

Settings exposes the full Pi model registry bundled with Pilog. Browse pricing and context windows at pi.dev/models, then use the same provider and model id here. Default for drafts: Anthropic claude-sonnet-4-6.

  • Direct APIs: Anthropic, OpenAI, Google (Gemini), DeepSeek, xAI, Mistral, Groq, and others.
  • Gateways: OpenRouter, Vercel AI Gateway, Amazon Bedrock, Google Vertex, Azure OpenAI, Cloudflare AI Gateway.
  • Coding-agent sign-in: GitHub Copilot, OpenAI Codex, OpenCode, Kimi Coding (OAuth where supported).
  • Custom & local: Ollama, LM Studio, vLLM, or OpenAI-compatible endpoints via ~/.pi/agent/models.json. See Local models (Ollama) below. Results vary with smaller models.

Local models (Ollama)

Pilog is local-first for your journal: notes, drafts, and run history stay in SQLite on your machine. Generate Drafts is the step that can leave it, unless Pi talks to a model running locally. Ollama is the recommended path; LM Studio and other OpenAI-compatible servers use the same models.json pattern with a different baseUrl.

  1. Install Ollama and confirm it is running (the menu-bar app on macOS, or ollama serve on Linux).
  2. Pull a coding-oriented model. For example:
    $ollama pull qwen2.5-coder:7b
    Larger models draft more reliably; smaller ones are faster on modest hardware.
  3. Create or edit ~/.pi/agent/models.json so Pi can reach Ollama (use the model tag you pulled):
    {
      "providers": {
        "ollama": {
          "baseUrl": "http://localhost:11434/v1",
          "api": "openai-completions",
          "apiKey": "ollama",
          "models": [{ "id": "qwen2.5-coder:7b" }]
        }
      }
    }
    Ollama ignores apiKey; Pi requires the field. Full options are in Pi's custom-models docs.
  4. In Pilog, open Settings → Provider & Model. Choose ollama and your model. Paste ollama (or any placeholder) into the API key field and click Configure Pi. Pilog stores it in OS-backed safe storage; Ollama does not validate it.
  5. Generate a test draft. Traffic stays on localhost. Publishing to GitHub still requires network access and remains a separate, explicit step.

If Ollama does not appear

Quit and reopen Pilog after editing models.json, or use Import existing Pi config if you already use the pi CLI with Ollama on this machine.

Getting credentials

Which key or sign-in you need depends on the provider you pick. The onboarding path below uses Anthropic; for any other provider, open pi.dev/models and use that vendor's console (or OAuth, for coding-agent providers).

API keys are stored in OS-backed safe storage, never in Pilog's SQLite database and never written to logs.

Switching models

Open Settings → Provider & Model, change the selection, and click Change…. The change applies to new draft generations; runs in the agent run history retain the model they were generated with so the audit trail stays honest.

Review & publish

Drafts land in the Drafts view (Ctrl2) unpublished. Read each one, edit the title or body inline, accept the suggested labels or pick your own, and press Ctrl to publish to GitHub. Pilog writes the issue and keeps a local publish-log entry linking the draft, the source notes, and the resulting issue URL.

Auto-publish exists for power users but is off by default, scoped per-linked-repo, and logged. Auto-publish never applies retroactively; only new drafts generated after the toggle is enabled are eligible.

Privacy & local-first

Pilog is local-first by stance, not as a fallback. Your journal (notes, drafts, repo metadata, and the full agent run history) lives in local SQLite. Secrets (GitHub OAuth tokens and Pi provider keys) live in OS credential storage: Keychain on macOS, DPAPI on Windows, the desktop keyring on Linux.

Fully local means two things: journal data on disk (always), and draft inference on your machine (only when Pi uses a local model such as Ollama. See Local models (Ollama)). The default onboarding path uses a cloud API; that is still BYOK and explicit, but Generate sends context to the vendor.

Data leaves your machine in exactly two situations, both under your control:

  • Generate Drafts sends the selected notes and a bounded slice of repository context to your configured Pi provider (localhost with Ollama, otherwise the provider's API. Drafts and run history are saved locally either way.
  • Publish sends the specific draft you're publishing to GitHub as a new issue. Local drafts stay on your machine until you publish them.

There is no telemetry, no usage analytics, and no automatic crash reporting. The publish log makes GitHub writes auditable.

Troubleshooting

The hotkey doesn’t open the scratchpad
Another app may have claimed the same combination at the OS level. Open Settings → Shortcuts and pick an unused chord, or quit the conflicting app. macOS occasionally needs Pilog to be granted Accessibility in System Settings → Privacy & Security before global hotkeys register.
Pi setup says “missing credential” after I pasted a key
Confirm the key wasn't pasted with whitespace. Anthropic keys start with sk-ant-, OpenAI keys with sk-. If the key looks right, try Import existing Pi config and re-save.
Generate Drafts is disabled
Drafts can only be generated when (a) the selected notes all belong to the same linked repository, (b) Pi is fully configured (provider, model, key), and (c) GitHub is connected. Settings shows a one-line status for each.
Linux: secure storage is unavailable
Pilog needs a desktop keyring exposed to Electron, usually GNOME Keyring or KWallet with libsecret. Headless sessions, minimal containers, and some WSL2 setups don't provide one. Run Pilog in a desktop session, or install gnome-keyring / libsecret-1-0 for your distribution.
The Windows installer triggers a SmartScreen warning
Preview builds are unsigned during MVP. Click More infoRun anyway. Stable signed builds will follow once the code-signing certificate is in place.

Still stuck? Open an issue on GitHub.

Docs | Pilog