Documentation
¶
There is no documentation for this package.
Directories
¶
| Path | Synopsis |
|---|---|
|
Package api is the contract between the lich backend and its clients: the window (native/backend), `lich` and `lich mcp`.
|
Package api is the contract between the lich backend and its clients: the window (native/backend), `lich` and `lich mcp`. |
|
extension
module
|
|
|
internal
|
|
|
agentplugin
Package agentplugin manages the lich companion plugin inside the provider CLIs that can run it: whether it is installed, whether a newer release exists, and installing or updating it.
|
Package agentplugin manages the lich companion plugin inside the provider CLIs that can run it: whether it is installed, whether a newer release exists, and installing or updating it. |
|
appkit
Package appkit makes lich's backend a macOS application, through purego rather than cgo: it runs AppKit's event loop on the main thread, which AppKit insists on, and the backend beside it.
|
Package appkit makes lich's backend a macOS application, through purego rather than cgo: it runs AppKit's event loop on the main thread, which AppKit insists on, and the backend beside it. |
|
appupdate
Package appupdate checks GitHub for a newer lich release and, on a Windows install no package manager owns, downloads and runs the release's installer.
|
Package appupdate checks GitHub for a newer lich release and, on a Windows install no package manager owns, downloads and runs the release's installer. |
|
awake
Package awake keeps the machine from idling into sleep while a session is working, the way a media player does while it plays.
|
Package awake keeps the machine from idling into sleep while a session is working, the way a media player does while it plays. |
|
claudeprofile
Package claudeprofile keeps more than one Claude Code account on one machine.
|
Package claudeprofile keeps more than one Claude Code account on one machine. |
|
cli
Package cli is the `lich` command line — the surface a provider CLI running inside a lich session uses to reach the sessions beside it.
|
Package cli is the `lich` command line — the surface a provider CLI running inside a lich session uses to reach the sessions beside it. |
|
codexprofile
Package codexprofile keeps more than one Codex login on one machine, the way internal/claudeprofile does for Claude Code.
|
Package codexprofile keeps more than one Codex login on one machine, the way internal/claudeprofile does for Claude Code. |
|
doctor
Package doctor answers "would lich start on this machine, and why not".
|
Package doctor answers "would lich start on this machine, and why not". |
|
drop
Package drop turns a file dropped on the terminal into a path the session can paste.
|
Package drop turns a file dropped on the terminal into a path the session can paste. |
|
events
Package events pushes app events (session status, titles, touched — anything the backend pushes to the UI) to the local WebSocket client on /events (see docs/native-window.md).
|
Package events pushes app events (session status, titles, touched — anything the backend pushes to the UI) to the local WebSocket client on /events (see docs/native-window.md). |
|
ghrelease
Package ghrelease reads the published releases of a GitHub repository — the one piece lich's two update checks (the app in internal/appupdate and the lich plugin in internal/agentplugin) share.
|
Package ghrelease reads the published releases of a GitHub repository — the one piece lich's two update checks (the app in internal/appupdate and the lich plugin in internal/agentplugin) share. |
|
gitutil
Package gitutil holds the small process rules shared by git callers.
|
Package gitutil holds the small process rules shared by git callers. |
|
logging
Package logging configures the process-wide slog logger: structured text with source file:line on every record, mirrored to stderr and a persistent file under the lich config dir.
|
Package logging configures the process-wide slog logger: structured text with source file:line on every record, mirrored to stderr and a persistent file under the lich config dir. |
|
ompprofile
Package ompprofile keeps more than one oh-my-pi login on one machine, the way internal/claudeprofile does for Claude Code.
|
Package ompprofile keeps more than one oh-my-pi login on one machine, the way internal/claudeprofile does for Claude Code. |
|
patchnotes
Package patchnotes serves the changelog section for the running build so the app can show a "what's new" popup after an update.
|
Package patchnotes serves the changelog section for the running build so the app can show a "what's new" popup after an update. |
|
pricing
Package pricing answers what a model's tokens cost, in US dollars, for the per-session cost readout.
|
Package pricing answers what a model's tokens cost, in US dollars, for the per-session cost readout. |
|
profilestore
Package profilestore keeps more than one login of a provider on one machine.
|
Package profilestore keeps more than one login of a provider on one machine. |
|
project
Package project opens project directories through the OS file picker.
|
Package project opens project directories through the OS file picker. |
|
prompt
Package prompt holds the natural-language text lich types into an agent session, in every language a user can pick for it.
|
Package prompt holds the natural-language text lich types into an agent session, in every language a user can pick for it. |
|
providers
Package providers is the registry of AI coding CLI harnesses lich can run in a session (Claude Code, Codex, Antigravity, opencode, oh-my-pi, Crush, Cursor CLI, Kiro CLI).
|
Package providers is the registry of AI coding CLI harnesses lich can run in a session (Claude Code, Codex, Antigravity, opencode, oh-my-pi, Crush, Cursor CLI, Kiro CLI). |
|
quota
Package quota reads the subscription quota a provider's own account API reports: the rolling windows a plan is metered in, and how much of each one is spent.
|
Package quota reads the subscription quota a provider's own account API reports: the rolling windows a plan is metered in, and how much of each one is spent. |
|
rage
Package rage collects what a lich bug report needs into one archive: the facts that decide whether a report is actionable (version, platform, window, provider and plugin state), the environment lich was launched with, and the log generations — with the loopback token masked wherever it appeared.
|
Package rage collects what a lich bug report needs into one archive: the facts that decide whether a report is actionable (version, platform, window, provider and plugin state), the environment lich was launched with, and the log generations — with the loopback token masked wherever it appeared. |
|
relay
Package relay lets one lich session hand a prompt to another and get an answer back, for the providers whose own CLI has no cross-session channel of its own.
|
Package relay lets one lich session hand a prompt to another and get an answer back, for the providers whose own CLI has no cross-session channel of its own. |
|
relpath
Package relpath validates the repo-relative paths lich receives from the page — a file picked in the review panel, a path parsed out of git's diff output — before they are joined onto a work-tree root.
|
Package relpath validates the repo-relative paths lich receives from the page — a file picked in the review panel, a path parsed out of git's diff output — before they are joined onto a work-tree root. |
|
restart
Package restart owns how a running lich ends.
|
Package restart owns how a running lich ends. |
|
routes
Package routes exposes the services api declares on an rpc.Handler, one function per service.
|
Package routes exposes the services api declares on an rpc.Handler, one function per service. |
|
rpc
Package rpc exposes the app's Go services to the window, `lich` and `lich mcp` over plain HTTP on the local transport listener: the window is its own process and never imports internal/ (docs/native-window.md).
|
Package rpc exposes the app's Go services to the window, `lich` and `lich mcp` over plain HTTP on the local transport listener: the window is its own process and never imports internal/ (docs/native-window.md). |
|
sandbox
Package sandbox confines a session's process tree to the work it was opened for: a private empty home, the rest of the machine read-only, and write access only inside the checkout and the provider's own state directory.
|
Package sandbox confines a session's process tree to the work it was opened for: a private empty home, the rest of the machine read-only, and write access only inside the checkout and the provider's own state directory. |
|
semver
Package semver compares release versions well enough for lich's update checks: MAJOR.MINOR.PATCH plus the SemVer rule that a pre-release precedes the release it qualifies.
|
Package semver compares release versions well enough for lich's update checks: MAJOR.MINOR.PATCH plus the SemVer rule that a pre-release precedes the release it qualifies. |
|
services
Package services runs a project's services: commands the user saved once (a container, a tunnel, a dev server) that lich starts on a PTY of their own and shows as up or down, outside the session list.
|
Package services runs a project's services: commands the user saved once (a container, a tunnel, a dev server) that lich starts on a PTY of their own and shows as up or down, outside the session list. |
|
shellintegration
Package shellintegration marks a shell session's prompt for the terminal with OSC 133, the way Ghostty's shell integration does, so the native window's terminal (libghostty-vt) clears the prompt on a resize instead of leaving the lines a reflow wrapped above the one the shell draws again.
|
Package shellintegration marks a shell session's prompt for the terminal with OSC 133, the way Ghostty's shell integration does, so the native window's terminal (libghostty-vt) clears the prompt on a resize instead of leaving the lines a reflow wrapped above the one the shell draws again. |
|
shquote
Package shquote quotes a string for a shell command line.
|
Package shquote quotes a string for a shell command line. |
|
singleton
Package singleton keeps a second lich launch from racing the pinned listener port and dying with a bare error.
|
Package singleton keeps a second lich launch from racing the pinned listener port and dying with a bare error. |
|
snippet
Package snippet cuts the stretch of text around a search hit that a result row shows.
|
Package snippet cuts the stretch of text around a search hit that a result row shows. |
|
spawn
Package spawn opens new lich sessions for a caller that is not the window: the `lich` command line and the MCP tools beside it (internal/cli).
|
Package spawn opens new lich sessions for a caller that is not the window: the `lich` command line and the MCP tools beside it (internal/cli). |
|
store
Package store is lich's persistence layer: a single SQLite database holding open projects, their terminal sessions and the settings scoped globally or to one project — provider binaries and defaults, the permission and sandbox rungs, the gh account.
|
Package store is lich's persistence layer: a single SQLite database holding open projects, their terminal sessions and the settings scoped globally or to one project — provider binaries and defaults, the permission and sandbox rungs, the gh account. |
|
system
Package system holds the few OS integrations the window needs that are not tied to any domain service — opening a URL in the user's default browser, opening a work-tree file in their editor, raising a desktop notification, and the handful of facts a bug report needs (version, platform, where the log lives).
|
Package system holds the few OS integrations the window needs that are not tied to any domain service — opening a URL in the user's default browser, opening a work-tree file in their editor, raising a desktop notification, and the handful of facts a bug report needs (version, platform, where the log lives). |
|
terminal
Package terminal spawns PTY-backed shell sessions and bridges their I/O to the window over the local WebSocket transport (transport.go), falling back to the /events channel.
|
Package terminal spawns PTY-backed shell sessions and bridges their I/O to the window over the local WebSocket transport (transport.go), falling back to the /events channel. |
|
themes
Package themes stores user-imported color themes and exposes them to the UI.
|
Package themes stores user-imported color themes and exposes them to the UI. |
|
tray
Package tray keeps lich in the system tray: the one thing on screen that says a lich whose window is closed is still running its sessions, and the way back to the window or out of lich from there.
|
Package tray keeps lich in the system tray: the one thing on screen that says a lich whose window is closed is still running its sessions, and the way back to the window or out of lich from there. |
|
xdgprofile
Package xdgprofile keeps more than one login of opencode, Cursor CLI and Kiro CLI on one machine, the way internal/claudeprofile does for Claude Code.
|
Package xdgprofile keeps more than one login of opencode, Cursor CLI and Kiro CLI on one machine, the way internal/claudeprofile does for Claude Code. |
|
Package themes owns the canonical bundled theme definitions.
|
Package themes owns the canonical bundled theme definitions. |
Click to show internal directories.
Click to hide internal directories.




