Lific

Web UI guide

How to triage issues, edit them, write pages, run plans, handle files and change settings in the Lific browser app.

The web UI is the browser app built into the Lific server. Open the server's address and sign in, and you work on the same data the CLI, the REST API and MCP see. There is nothing to install and nothing syncs to your machine: the page talks to your instance over HTTP and a WebSocket.

Every view has its own link, so you can paste or bookmark any of them: /APP/issues, /APP/board, /APP/issues/APP-42, /APP/pages/7, /APP/plans/2.

Find your way around

Home (/) covers every project you can see. It shows open work by how long it has been open, the open count over the last 90 days, and how recently each project changed. Below that, the Agent queue ranks unassigned, unblocked issues by priority, age and idle time, and Only you lists issues assigned to you, marked for a person, or waiting on you. Recent activity, your finished work over the last twelve weeks and your pinned pages close the page. Recently viewed items are in the command palette.

The sidebar lists your projects. Expand one to reach its sections: Overview, Issues, Board, Graph, Modules, Pages, Files, Plans, Activity and Insights. Under the active section it also lists the items you opened recently in that section.

Sidebar order is personal. Right-click a project or group for Move up and Move down, to move the project into a group or out of one, or to start a new group. None of this changes anybody else's sidebar. Drag the sidebar's edge to resize it, or collapse it with the control beside the Lific wordmark (Cmd/Ctrl+\). This browser remembers both.

Issue, page, plan and module lists have sub-tabs with counts. Lific remembers the tab you last used in each project:

ListSub-tabs
IssuesAll, Recent, Open, Closed
PagesBrowse, Recent, Drafts, Archived
PlansActive, Done, Archived, All
ModulesActive, Backlog, Archive, All

Triage issues

Issues shows the list and Board shows the same issues in columns. Switching between them keeps your filters and search.

Filter by status, priority, module or label, type in the search box, then choose the sort, grouping and row density. The right-hand panel counts the current issues by priority and by module. Click a row there to toggle that filter.

To keep an arrangement, save it as a named view. A view stores the layout (list or board), the four filters, the search text, the sort, the grouping, the density, the board's swimlanes and its hidden columns. Views are yours alone and belong to one project. Star one to make it your default: it is applied the first time you open that project in a browser tab. A dot means the current view has unsaved changes.

On the board, split the columns into swimlanes by module or by priority, collapse columns you are not using, and hide statuses you do not want to see. Drag a card to another column to change its status, or to another lane to change its module or priority; a toast offers Undo. The + on a column header opens the new-issue form with that status filled in. C opens the same form from the list or the board.

Select and act on several issues

Tick a row's checkbox, Cmd/Ctrl-click the row, or press X on the focused row to select it. Shift-click and Shift+J/Shift+K extend the selection, and Ctrl/Cmd+A selects every visible row. On desktop the sub-tab strip also has a select-all control.

The bulk bar then sets the status, priority or module of every selected issue at once, with a single Undo for the whole change. It can also add a label, and delete the issues after you confirm. Export downloads the selected issues as one Markdown file with their metadata and comments. If that file would be larger than 16 MiB, the export stops with an error instead of saving part of it.

Open, peek and delete

Clicking an issue's title or identifier opens it. Clicking elsewhere on a row does not navigate, so selecting rows never loses your place. To look without leaving the list, press Space on the focused row, long-press it on a touch screen, or Cmd/Ctrl-click a card on the board. The peek panel lets you change status, priority and module; it shows read-only controls if you can only view the project.

Deleting an issue removes it from the list straight away and shows a toast with Undo. The delete is sent only when that toast closes, so Undo never has to recover anything. If the request then fails, the issue comes back and the toast says why. A deleted issue stays in the server's trash for the retention period (30 days by default), but the web UI has no trash view. A maintainer restores it with POST /api/issues/{id}/restore; see Issues.

Edit an issue

The issue view puts the description on the left and the fields on the right: Status, Priority, Module and Labels, then any relations (Blocked by, Blocks, Related, Duplicate of, Duplicated by), then Created and Updated. Relation chips show the other issue's current status and change when it does. Shift-click a chip to preview that issue instead of opening it.

To add a relation, click Add relation under the relations, choose its kind, then pick the other issue. The picker searches the current project; type a full identifier such as OPS-12 to link an issue in another project. Click the × on a chip to remove it. That removes every relation between the two issues, so a pair that both blocks and relates loses both. Viewers see the chips without these controls.

The Waiting on field holds blockers that are not issues: a person, or a window of days with an optional note. Choose Add blocker, then Person or Dates. Each one shows whether it is still waiting, due to check or overdue, and its clear button removes it. List rows and board cards show a small marker naming who or when the issue waits on, in red once overdue. See waiting on a person or a date.

The status chip in the top bar is also a picker, so you can change status from there. Status, priority and module changes show a toast with Undo.

Start and target dates are not shown or editable in the browser. Set them through the CLI, the REST API or MCP.

The Markdown editor

Issue descriptions and pages use the same editor. Choose Edit, or press E, to switch from the rendered view to the Markdown source. Preview, Save or Cmd/Ctrl+S saves and switches back; Esc or Cancel throws the draft away. The editor keeps the text you were reading at the same height on screen when it switches, so the page does not jump.

  • The toolbar inserts bold, italic, headings, bulleted, numbered and task lists, inline code, code blocks, links and quotes. Cmd/Ctrl+B, Cmd/Ctrl+I and Cmd/Ctrl+Shift+K cover bold, italic and links.
  • Type part of an identifier, such as APP-, to get suggestions. APP-12, APP-DOC-3 and APP-PLAN-2 render as links, and hovering an issue link shows a summary card.
  • Code blocks get a copy button, and mermaid code blocks render as diagrams.
  • Select text in a rendered description to copy it or quote it into a comment.

Besides the issue view, relations can be drawn in Graph, or created from the CLI, API or MCP.

Graph has two views. Linked draws the issues that have at least one relation, arranged by their blocks chains. Unlinked lays out the rest in a grid so you can connect them. Closed issues are hidden until you turn on Closed issues.

To add a relation, drag from the dot on a card's right edge onto another card, then choose which way it blocks, "relates to" or "duplicates". Click a line to reverse its direction or remove it. Viewers see the graph without these controls. The layout is recalculated on every visit; card positions are not saved.

Discuss in comments

Issues and pages have one comment thread each. Comments are Markdown and can carry attachments. Type @ to mention someone.

Only your own comments show an actions menu, with Edit and Delete. An edited comment is marked edited; hover the label for the exact time. A Verification badge marks a comment that holds the evidence an agent recorded when it closed the issue.

Each comment has a link next to its author, so you can send someone one comment instead of the whole thread. In Markdown, #42 links to comment 42 on the same issue or page, and APP-25#comment-42 links to a comment elsewhere. Neither becomes a link inside code.

A long thread opens on its newest comments, with Load older comments above them. While older comments are not loaded, the count beside the heading ends in +. Opening a link to an older comment loads the comments in between and scrolls to it. If the comment is very far back, or was deleted, it stops after a few hundred; keep going with Load older comments.

Write pages

Pages are Markdown documents. Each has a status (draft, active, complete or archived) that you set from the status picker. Browse shows the page tree, Drafts and Archived collect pages with those statuses, and Recent sorts by last update.

Put project pages in folders by dragging a page onto a folder on desktop, or with the move-to-folder picker on a touch screen. A page and its folder must be in the same project. Pin keeps a page at the top of the page list and puts it on Home.

Pages use the Markdown editor described above and have their own comments and activity. Workspace pages belong to no project, have no folders or labels, and only an administrator can edit them.

Work with plans

A plan is a checklist of steps, nested as deeply as you like, for work that spans several sessions. Open a plan to add steps and sub-steps, tick them off, write a note on a step, or delete a step (which deletes its sub-steps too). Set the plan's status to active, done or archived from its sidebar.

Use link on a step to attach an issue. The two stay in step: ticking the step marks the issue done, marking the issue done ticks the step, and reopening the issue unticks it. Anchor issue in the sidebar names the issue the plan breaks down; when that issue is marked done, the plan is archived.

Plans keep an activity history but have no comments. The web UI cannot reorder or move steps; use the CLI, API or MCP for that.

Files and attachments

Attach a file wherever you can write: drag it onto the editor or comment box, paste it, or use the attach button. Each upload shows as a chip while it runs. A failed upload shows the server's reason and a Retry button.

  • Large images. When an image is very large in pixels, or close to the instance's upload limit (10 MiB by default), its chip offers to resize it in the browser before it is sent.
  • Screenshots. Pasting an image shows Annotate before upload? for a few seconds. Accept it to crop, draw arrows, rectangles and freehand lines, or redact part of the image before it uploads. Redaction replaces the pixels in the uploaded file, so the original content is not recoverable from it. If you ignore the offer, the image uploads unchanged.
  • Alt text. You are prompted for alt text after an image uploads.
  • Voice notes and photos. In browsers that can record audio, the microphone button beside Attach records a voice note and uploads it. On a phone, Attach opens a menu with Files, Camera and Record voice.
  • Long pastes. Pasting more than 60 lines or 6,000 characters offers to attach the text as a file instead. Enter attaches it, Esc pastes it inline.

Attachments open in place instead of downloading when Lific has a viewer for them: images, video, audio, text and source code, diffs and patches, CSV and TSV tables, JSON, zip archives and SQLite databases. Other files, including PDFs, appear as a download chip.

Files lists every attachment in the project. Filter by type (All, Images, Video, Audio, Text, PDF, Archives, Other) or by uploader, and sort by newest, largest or name. The header shows how many files the project holds and their total size. Expand a row to see which issues, pages and comments use the file and jump to them. The uploader, a maintainer or an administrator can delete a file; the confirmation says how many references it will break.

Pending cleanup, collapsed below the list, shows uploads by project members that were never attached to anything, with the time left before the server deletes them.

Keyboard and command palette

Press ? to see every shortcut, grouped into Global, Issue list, Board, Peek panel, Command palette and Markdown editor. The most useful:

KeysAction
Cmd/Ctrl+K or Cmd/Ctrl+POpen the command palette
Cmd/Ctrl+\Collapse or expand the sidebar
?Show all shortcuts
J / K or arrow keysMove down or up the issue list
Home / EndJump to the first or last row
Enter / SpaceOpen or peek the focused issue
X, Shift+J/K, Ctrl/Cmd+ASelect the row, extend the selection, select all
S / Shift+SOpen the status picker, or cycle status
P / Shift+POpen the priority picker, or cycle priority
MOpen the module picker
CNew issue
/Focus search
EscClear focus or selection, or close what is open

Shortcuts do not fire while you are typing in a field. The peek panel, command palette, shortcut list, context menus and the mobile navigation drawer take over the keyboard while they are open.

The command palette finds things by identifier or by text:

  • APP156, app 156 and APP-156 go straight to that issue.
  • app doc 3 or APP-DOC-3 opens that page, and doc 3 opens page 3 of the project you are in.
  • A bare number such as 156 (or #156) looks for that issue number in every project. The current project's issue always comes first, so Enter opens it. If you press Enter before the number has resolved, the palette waits for it rather than opening something else.
  • With nothing typed, the palette lists the items you viewed most recently, then your projects.
  • Anything else searches the current project's issues and pages as you type, along with project, module and folder names, and adds full-text results from the server when there are few local matches. When no server result contains every word, that group is labelled "partial matches" and shows results containing any of them.

Cmd/Ctrl+Enter, a Cmd/Ctrl-click or a middle click opens a result in a new tab. On an issue or page, the palette also offers actions for it, such as setting its status or renaming it.

A copy control sits beside identifiers in the breadcrumb trail, on board cards and in the peek panel; list rows have the same action in their right-click menu. It shows a check mark once the identifier is on your clipboard.

Run a project

Overview is the project's home page. Everyone sees its progress, a "Needs attention" list of open issues and recent activity. A lead can also change the project's name, icon and description, change its lead, manage members and their viewer, maintainer or lead roles, import issues from GitHub, and archive or delete the project. Maintainers manage labels here; modules are managed in Modules. Projects explains what each role can do. You can also file the project into one of your sidebar groups. Export in the top bar downloads the project as Markdown for reading.

Two more panels appear only for the project's lead or an instance administrator, even when project permissions are off:

  • Public view publishes the project's current issues, pages, comments and their files to anyone with the link. See Public projects.
  • Project archive downloads a full copy of the project, with its history, for moving it to another instance. See Project archives.

Activity is the project's full change history. Each entry shows who made the change and whether it came from the web, API, MCP or CLI. Click a person or tool in the side panel to show only their changes, and expand an entry for exact local and UTC times and the old and new values.

Insights charts issues created against issues closed per week, breaks the project's issues down by status, priority and module, and lists who made the most changes.

Accounts, connected tools and settings

Settings has an Account tab for everyone and an Instance tab for administrators.

Account holds your display name, appearance, password, connected tools and sign-out. Appearance covers accent color, density, font size, reduced motion and the Light, Dark or System theme. The theme is also in the sidebar's theme menu, and a change in one tab applies to your other open tabs.

Instance holds:

  • the instance name shown on the sign-in screen;
  • Sign-ups: Open lets anyone create an account, Closed means only an administrator can;
  • which email domains may sign up (blank allows any);
  • how long sessions last, and a message for the sign-in screen;
  • Single-user mode, which can skip web sign-in and sign every visitor in as the administrator. Only use it on a private instance; see Self-hosting;
  • Project permissions: when on, only a project's members can see or edit it. Add yourself as lead of your projects before turning it on.

The same tab lists every account. From there an administrator creates accounts, makes or removes administrators, and deactivates or restores accounts.

Below the accounts, Archived projects lists every archived project, with Unarchive to bring one back.

Connect an AI tool

Connected tools on the Account tab writes an MCP configuration for one tool at a time. It has templates for OpenCode, Cursor, Claude Code, Claude Desktop, Codex, Pi, VS Code and Zed, and Add custom or named connection for any other HTTP MCP client. Give each connection its own name, such as "Codex on my laptop", so its activity is labeled correctly and disconnecting it leaves your other tools connected. lific connect on the command line supports more clients, including Gemini CLI, Windsurf, Goose and Crush.

Change your password or sign out everywhere

Both actions revoke every session, API key, OAuth token and connected tool that belongs to your account or to the tools it owns.

  • Change password signs you out on every other device and keeps this browser signed in with a new session.
  • Sign out everywhere and revoke access does the same, but signs this browser out too. It asks you to confirm first. If the request fails, you stay signed in.

Afterwards, reconnect each tool from Connected tools or with lific connect, replace any API key a script uses, and restart running MCP clients. They do not pick up new credentials by themselves.

When Lific asks for your password again

Actions that give someone lasting access need a sign-in from the last 15 minutes: connecting a tool, creating an account, making someone an administrator, restoring a deactivated account, changing instance settings, adding a project member and raising someone's project role. If your sign-in is older, a password field appears next to the action. Confirm, and the action continues with what you entered; a wrong password changes nothing. With single-user mode on, the session is usually refreshed without asking.

Actions that only take access away never ask: signing out, removing an administrator, deactivating an account, lowering a project role, removing a member and refusing a device login.

On a phone

A browser that supports installing web apps can add Lific to your home screen and open it in its own window. It still needs a connection to your server; there is no offline mode.

  • Selecting a project opens its sections. Back, including the phone's back button, returns to the project list before closing the menu.
  • The board shows one column at a time; swipe between them.
  • Less-used list controls (saved views, sort and display) move into one menu.
  • Move pages with the move-to-folder picker instead of dragging.
  • Opening a link to an issue, page, plan or module as the first page puts its list behind it, so Back goes to the list instead of leaving the app.

Staying current

Lists, boards and open items update live as other people and agents make changes. Tabs in the same browser share one connection. After a dropped connection, Lific catches up on what it missed; let the view refresh before you continue an edit.

On this page