Pickle conversation card
이 콘텐츠는 아직 번역되지 않았습니다.
Click a Pickle dock icon to open its card.
The card contains:
- Header with title, status badge, and menu. Clicking the context percentage opens a popover that can compact the conversation and, when the Pickle’s model runs on a subscription shown under Plan limits, lists that plan’s session and weekly limits.
- Context line with working folder, Git/PR/link badges.
- Conversation history as a messenger thread with Markdown-rendered replies and day dividers (Today, Yesterday, then dates). Hover a bubble to see its send time. Thinking is not shown in the thread; while a Pickle is replying, a line under the last bubble shows Working ·
while a tool runs (the current checklist step, shell command title, skill, or delegated agent), Preparing next step while the agent writes out its next tool call, a short writing phrase such as Choosing words while reply text streams, and Thinking otherwise, with the elapsed time on hover. The last step stays on the line through pauses shorter than 5 seconds. The line disappears once the reply finishes, even if background work keeps running. - Picky replies always render in full in the HUD, including Markdown tables rendered as cell grids, and can still be opened as reports. Hover any reply with at least 150 characters to show its side-panel button, including intermediate replies in the same turn. Replies under 150 characters do not show this button; leading and trailing whitespace does not count toward the minimum. Only user message bubbles keep the Show more and collapse controls. The card keeps a window of the most recent turns; when older turns are hidden, a Show earlier turns pill at the top of the history reveals more per click (full history stays in the Pi session file).
- A running-work footer when the runtime reports active background tasks. Expand it to see task names and elapsed times; subagent work shows agent types when available. The footer can open as a popover in a compact card. Background jobs may keep running after the current response ends. Completed subagent launches and
bash_asyncnotifications are not duplicated in the conversation. - Composer for steer/follow-up input. Attach, terminal panel (
Cmd + E), and microphone (Cmd + D) sit on the left of its toolbar; the model and thinking settings chip sits next to Send. - Inline question forms when Pi/tools need user input. Answered
ask_user_questionforms keep the submitted choices visible and locked, including on the phone; they cannot be submitted again. - A read-only task-progress indicator at the top of the conversation when Pi shares a checklist for the active task. Click it to expand or collapse the task list; once expanded, it stays open while you interact elsewhere in the conversation and closes only when you collapse it or the checklist completes. Completed tasks are marked, the current task shows its in-progress state only while the Pickle is running, and lists with six or more tasks scroll within the expanded panel. As progress advances, the drawer scrolls the current task into view.
- Optional local-shell utility panel below the composer. It opens directly to a terminal in the Pickle cwd and does not replace or sync the Pi session.
- Optional private note add-on.
Header
Section titled “Header”Header actions:
| Action | Behavior |
|---|---|
| Double-click title | Rename the Pickle. |
| Click status/Pickle badge | Arm or disarm this Pickle as the next screen-context target. |
| Click the archive box | Archive the Pickle straight from the header. Also available as Cmd + Delete. |
| Open ellipsis menu | Shows terminal/session actions. |
Renaming saves the Pickle’s display name without starting work or changing its Pi session file. You can also type /name <new title> directly in the composer or use picky pickle-rename. All three update the same Picky name.
The header may also show a context-usage percentage/bar. It gives a quick view of how full the Pickle’s context window is. The bar becomes more urgent as usage grows, turning amber above roughly 70% and red above roughly 90%. Hover it to see token counts when available.
Context line
Section titled “Context line”The context line can show:
- Working folder.
- Repository name.
- Branch name.
- Uncommitted Git insertion/deletion counts beside the branch name. The details popover shows the whole branch diff from its default-branch fork point, with the uncommitted subset in parentheses when they differ.
- Ahead/behind counts.
- Pull request status.
- Link badges from artifacts, such as GitHub, Slack, Notion, Jira, Linear, or generic links. Generic web links display the site’s favicon when it is available; otherwise they use the standard link icon.
Review window
Section titled “Review window”Each Pickle can open a separate window for reviewing its folder:
- The
+N −Mchip opens the uncommitted changes (working tree againstHEAD, untracked files included), the same set the chip counts. - The branch label in the details popover opens everything the branch changed since it forked from
origin/HEAD,origin/main, ororigin/master, working tree included. - The View changes and files icon beside the details chevron on the context line (under the title) is always available. It opens uncommitted changes when there are any, then the whole branch, and otherwise the file tree.
The scope control in the toolbar switches between Uncommitted, Whole Branch, and By Commit. By Commit opens the newest commit on HEAD (or the one you looked at last) and shows what that commit changed against its first parent. The bar above the viewer steps to the previous or next commit, and the commit hash opens a menu of the 100 most recent commits, split into commits new on this branch and commits the base branch already has. In this scope, Files shows the files as they were in that commit, and comments written there count lines in that commit.
The sidebar never shortens a name. Searching or showing only changed files keeps the full tree’s folder expansion choices separate, so clearing the filter restores them. When a path is wider than the sidebar, the tree scrolls sideways while comment counts and the Viewed checkbox stay at the visible right edge. It opens with names starting at the left, and when it follows the file shown in Changes it only scrolls up or down. Drag the divider between the sidebar and the viewer to change its width (200 points up to what the window leaves for the viewer); the width is remembered for new windows, and double-clicking the divider restores the default.
Changes shows every changed file in one continuous list with sticky file headers, in the same folder-first order as the sidebar tree. The layout button in the toolbar switches between one column and side by side (old file on the left, new file on the right); the choice is remembered for new windows. In a pair of removed and added lines, the words that changed get a stronger tint. Diffs over 800 changed lines, lockfiles, string catalogs, and other generated files start collapsed; binary files, files whose mode alone changed, files renamed without edits, and empty files show a notice instead of lines. Marking a file Viewed collapses it and counts toward the review progress for the current diff. Files that leave the diff no longer count. A new untracked file that exceeds the read limit shows a partial-content notice even when collapsed; a file that could not be read says so instead of appearing empty.
Files shows the whole repository tree (or the folder, outside Git) and opens any file with line numbers. Changed lines from the selected scope are marked in the gutter: green for added, amber for modified, and a red wedge where lines were removed. The previous/next arrows jump between changes.
Switching between Changes and Files brings each one back to where you were reading. Another scope starts the diff at its first file, and a new window after you close this one starts both at the top.
Press Cmd + F to search the current viewer. Cmd + G moves to the next match and Cmd + Shift + G to the previous one.
New repository changes mark the refresh button instead of replacing the code while you read. Click it when you are ready to load the new changes.
Code is colored for Swift, JavaScript (.js, .mjs, .cjs, .jsx), TypeScript (.ts, .tsx), JSON, and shell scripts; other files stay in the plain text color. Colors appear a moment after the lines when a file is large.
Drag across code in either view to select text, then press Cmd + C to copy it. Click or drag in the line-number gutter to open an inline comment editor right below the selected lines; a selection that spans hunks keeps to the first one, since the lines between hunks are hidden. In the side-by-side layout, the half you start in decides whether the comment is on the old or the new code. ⌘↩ adds the comment and esc cancels. If you start a comment while an unfinished one with text is out of view (another scope, a collapsed file, or the other viewer), the unfinished text is saved as a comment instead of being lost. Saved comments can be edited or deleted until they are sent. Each comment belongs to the version of the file its line numbers count in: the working tree, a commit, or, for removed lines, the commit they were removed from (HEAD or the fork point when you wrote it). It shows wherever that version is on screen, so after the Pickle commits, a comment on a removed line appears in that commit rather than on other lines. Send to Pickle opens a confirmation that lists every unsent comment, including ones from another scope, with Delete for each; Message the Pickle receives shows the exact text, where each file names the version its line numbers count in and the commented lines are quoted. For a renamed file, comments on removed lines name its path in the old commit. Sending delivers the comments and the optional overall comment as one follow-up; comments added or edited while that send is in progress stay pending for the next send. A running Pickle receives it after its current response; an idle Pickle starts on it right away. Unsent comments and the overall comment are kept when you close the window and when Picky quits or updates, and come back the next time you open that Pickle’s review. Comments already sent are not kept.
Interactions:
- Click working folder to open Finder.
- Click repository/branch links to open the remote web URL when available.
- Click
↑Nto rungit push. - Click
↓Nto rungit pull. - Click PR/link badges to open external links.
Composer behavior
Section titled “Composer behavior”The composer stays pinned to the bottom of a resized Pickle card. It uses one bordered surface with the editor in the middle and actions along the bottom. A single settings chip opens the model, thinking level, fast mode, and completion notification controls. Control + P and Shift + Tab still cycle the model and thinking level without opening the settings. Each picker can save the current value as the default for new Pickles. Resumed Pickles keep the model and thinking level stored in their Pi transcript instead.
When the Pickle’s current model supports provider fast mode, its settings offer a fast mode control. Turning it on asks the provider for faster replies at a higher price: service_tier: "priority" for OpenAI GPT-5.4 and later (including the Codex subscription), and speed: "fast" for Claude Opus 4.8, 5, and 5.5 on the Claude API (a research preview that needs access from Anthropic). The first time you turn it on, a short notice explains the extra cost and asks you to confirm; once you confirm, it does not appear again in any Pickle. Cancelling leaves fast mode off. The choice belongs to that Pickle only, survives restarts, and stays when you switch to a model without fast mode, where the control hides and requests go out unchanged. New and duplicated Pickles always start with fast mode off.
Picky refreshes Pi’s remote model catalog before initial model selection and when loading an active Pickle’s model picker. Updating the standalone Pi installation does not update Picky’s bundled SDK. Catalog requests respect Pi’s cache and PI_OFFLINE setting; if a refresh fails or reaches its five-second deadline, existing models remain available. Repeated picker requests share an in-flight refresh and wait at least one minute between attempts.
The model picker follows Pi’s effective enabledModels scope. All models… edits the global scope in ~/.pi/agent/settings.json with an explicit Apply action. A project override is identified but left unchanged, and scopes containing globs, thinking suffixes, or unresolved model IDs remain read-only to avoid destructive rewrites. A configured default model may start outside the scope; Picky marks it as outside while still allowing it as the initial model.
A control stays disabled while its change is in flight, and a failed change shows a warning icon next to the pair. The editor grows from one through four lines as you type, temporarily expanding the card, then scrolls internally from the fifth line onward.
| Session status | Default Return action |
|---|---|
| running / queued / waiting_for_input | Steer this agent. |
| completed / blocked | Send follow-up. |
| cancelled | Resume with a steer. |
| failed | Steer the same Pickle. The error bubble also offers Continue or Retry. |
When a runtime request fails, its error bubble shows Continue. Continue keeps the existing Pickle transcript and resumes it with a short continuation, so it does not re-send the original request or intentionally repeat completed work. If Pi rejected the original request before it was delivered, the bubble shows Retry, which safely sends that original request again instead. When the request was rejected because no AI account is connected, the bubble says so and also offers Connect account, which opens Connected accounts in Settings; connect an account, then use Retry. For manual diagnosis, the card menu’s Copy resume command reopens the same session in your own terminal.
If a Pickle’s previous run does not shut down, Picky restarts the Pickle on its own on a copy of its Pi session file. A banner above the composer shows Restarting this Pickle, then Pickle restarted; work that was in progress does not continue, but you can keep the conversation going. If the restart fails, the banner reads This Pickle can’t continue and offers Duplicate and continue, which starts a new Pickle with the same conversation. A message you send while the Pickle is restarting or has no runtime stays in the composer, with the reason it did not go out. A background task whose stop could not be confirmed stays listed as status unknown, but no longer blocks new messages.
A submitted message appears immediately as a dimmed bubble while delivery is pending. Once accepted, it becomes the normal message in the conversation. If delivery is rejected, the pending bubble disappears and the draft is restored.
If Picky restarts during a response, the interrupted Pickle no longer stays running; send another message to continue. The conversation says that a restart stopped it and quotes any steers or follow-ups that were waiting, which are not sent. A finished answer remains completed if only its subsequent context compaction was interrupted.
Keyboard behavior inside the composer:
| Key | Action |
|---|---|
| Return | Submit default action. |
| Shift + Return | Insert newline. |
| Option + Return | Submit follow-up when available. |
| Escape | Dismiss autocomplete; if armed, cancel screen context; otherwise stop an active session and keep the draft. Esc in the composer never closes the card. |
| Tab | Accept selected autocomplete. |
| Shift + Tab | Cycle thinking level. |
| Control + P | Cycle model forward. |
| Control + Shift + P | Cycle model backward. |
| Up / Down | Navigate autocomplete. |
| Option + Up | Pull queued messages back into the composer and clear the queue. |
Queued steers and scheduled messages
Section titled “Queued steers and scheduled messages”A steer sent while the Pickle is busy appears in the thread right away as your message, dimmed until the Pickle takes it. Under it, Edit in composer pulls it back into the composer and Cancel send removes it after a confirmation.
Follow-ups and timed messages wait outside the thread, in a one-line scheduled bar above the composer that shows the count and the next delivery. Click it to open the list grouped by when each message goes out. Each row offers Send now, Edit (the text moves into the composer; Return saves), and Delete with an inline confirmation.
Send when
Section titled “Send when”The chevron on the right of the send button opens Send when:
| Option | Delivery |
|---|---|
After this reply (Option + Return) |
Queued as a follow-up for when the current reply ends. |
| In 15 min / In 1 h | That long after you pick it. |
| Tomorrow at 10:00 AM | The next calendar day at 10:00, even shortly after midnight. |
| Custom time | Opens a date and time picker in the same menu. |
In Custom time, the date menu lists the next two weeks; Other date… opens a month calendar for dates up to a year ahead. Type the time (for example 15:30, 1530, 3pm, or 오후 3시) or pick it from 15-minute steps. A time typed without AM/PM means the next time it occurs on the chosen day. Schedule stays disabled for an unreadable or past time.
Timed options need the delayed action plugin; without it they stay visible but disabled, with an Install link. Timed messages send text only, so they are disabled while the draft has attachments or armed screen context. The menu is unavailable while you edit a scheduled message. A timed message keeps its exact time; if the Mac is asleep then, it is sent shortly after the Mac wakes.
Steer vs follow-up
Section titled “Steer vs follow-up”- Steer: changes or directs what the currently running/failed/cancelled agent should do next.
- Follow-up: starts a new continuation after a completed/blocked turn, or queues a follow-up where supported.
The UI chooses the default based on session status. Option + Return can force follow-up when available.
Bash execution mode
Section titled “Bash execution mode”If the composer text starts with ! or !!, Picky visually switches into Bash execution mode.
| Prefix | Meaning |
|---|---|
! command |
Run bash; include output in Pi context. |
!! command |
Run bash; exclude output from Pi context. |
Visual cues:
- Composer border changes color.
- Left badge shows BASH or PRIVATE.
- Send icon changes from paper plane to play icon.
Safety behavior:
- If attachments are present, Picky prevents accidental bash execution by treating the message as a normal prompt.
Slash command autocomplete
Section titled “Slash command autocomplete”Type / in the composer to show slash command suggestions supplied by Pi’s built-in and extension autocomplete providers. Picky also adds local HUD commands where useful; for example, /tree opens the Pickle message rewind picker instead of sending the text to Pi.
A submitted slash command appears in the conversation with the command name as a header and its arguments as the body. A command that fails is marked Failed.
Suggestions follow the caret: they appear whenever the caret sits inside the leading command token, even when more draft text follows. Accepting a suggestion replaces only the typed command part and keeps the rest of your draft, so you can place the caret at the start of an existing message and prepend a command without losing your text.
Controls:
- Up/Down: move selection.
- Tab or Return: accept selected command.
- Escape: dismiss suggestions.
File mention autocomplete
Section titled “File mention autocomplete”When file mention syntax is detected, Picky suggests files relative to the Pickle cwd.
Suggestions open automatically for @ mentions. A bare path token such as ., ./src, or docs/guide does not open the panel on its own, so ordinary prose like a sentence-ending period stays untouched; press Tab to request path completions for the token at the caret.
File search runs on the fd binary, resolved from ~/.pi/agent/bin/fd, Homebrew, or system paths. If fd is not installed, the panel shows “File search requires fd (not installed)”.
Controls:
- Tab: request path completions when no suggestion is selected.
- Up/Down: move selection.
- Tab or Return: accept selected suggestion.
- Escape: dismiss.
Directory suggestions can keep the autocomplete open so you can continue drilling down.
File and image drops
Section titled “File and image drops”Drop files or screenshots anywhere on the Pickle card to attach their file paths. You can also paste an image from the clipboard into the composer, such as a screenshot taken with Control + Shift + Command + 4; Picky saves it like a dropped image. Text on the clipboard, even when it comes with an image, pastes as text.
Behavior:
- Dropped and pasted items become attachment chips above the composer.
- Chips can be removed before sending.
- On submit, attachment paths are appended to the message.
Notify on completion
Section titled “Notify on completion”The composer settings chip (it shows the model, such as opus-5-5 · medium) opens Pickle settings, whose When done section holds two independent toggles for successful completion:
- Report to the main agent: report completion to the main agent.
- Send a macOS notification: show a macOS completion notification.
Cmd + Ntoggles only this channel.
Enable either channel, both, or neither for each Pickle. The conversation menu exposes the same two toggles (Report completion to the main agent and Notify in macOS when complete), and picky pickle-notify reads or changes them from the CLI. Hub → Settings → Notifications, permissions, and privacy supplies defaults only when a new Pickle is created; changing those defaults does not change existing Pickles.
Both defaults are off on a fresh install, so background work stays quiet until you enable a channel. Whether macOS notifications remain in Notification Center follows System Settings → Notifications → Picky. Clicking a notification opens that Pickle in the HUD without opening Hub; reopening Picky from its Dock icon still brings Hub forward.
Inline questions and confirmations
Section titled “Inline questions and confirmations”When Pi or an extension asks for input, Picky shows an inline question bubble.
Supported controls:
- Confirm: Allow / Cancel.
- Select: choose one option or cancel.
- Input/editor: type a response and submit.
- askUserQuestion form:
- radio
- checkbox
- free-text
- optional “Other…” entries
Click an option to select it. When the question has keyboard focus, number hints appear beside the first nine options without moving them; press 1–9 to select or toggle an option.
Answered or cancelled question bubbles collapse but can be expanded for review.
Background work
Section titled “Background work”The footer above the composer shows the number of running tasks. Expand it to see their names and elapsed times; when the card is compact, the list opens in a popover. Subagent work shows agent types when available. The conversation does not repeat subagent launches or bash_async completion notifications. Use Tool History to inspect the recorded calls and results.
After a response is stopped, a Pickle with only unprocessed background results waits for input instead of showing Running. The footer reads Awaiting resume. The results stay available for a follow-up message to resume processing. Active background tasks and automatic result delivery after a normal response keep their existing behavior.
When background tasks are running, Stop lets you end only the current response or stop everything. Stopping only the response leaves those tasks running. During automatic retries, the presence line stays visible and shows the attempt and the provider’s error.
Extension message bubbles
Section titled “Extension message bubbles”Other Pi extension messages, such as web-search-content-ready or prompt-suggest-lite-status, can appear in the conversation with their customType label. Long messages start collapsed with a preview of each blank-line separated block, up to ten lines. Click the header to expand the full output, or right-click to copy it or open it in the report viewer.
Extension notices show up to four lines or 180 characters; Expand shows the rest in the bubble.
Tool History viewer
Section titled “Tool History viewer”Click a tool/activity summary in a Pickle card to open Tool History in a separate window. Tool History helps inspect what the Pickle actually did. It loads the original history from the Pickle’s Pi session file, so the record survives Picky restarts and the scope toggle can still switch between the current turn and the whole session.
It can show:
- Tool calls grouped by category, such as read, bash, edit, write, and other. Known tools show their key argument as the title, such as a
bash_asynccommand, agreppattern and path, or aweb_searchquery; unknown tools show their tool name. - Tool status and duration.
- Full tool results inline, without extra metadata wrapping.
- Edit diffs for file changes where available.
- Dedicated layouts for todo-list updates and subagent launches; batch and chain entries retain the complete launched-agent list even when their task text is long.
File paths shown for read/edit/write entries are clickable: absolute (including ~-prefixed) paths open directly, and relative paths resolve against the session’s working directory. Clicking opens the file with its default app; a right-click menu offers Open, Reveal in Finder, and Copy path.
When Pi’s read tool reads an image, the conversation shows a thumbnail with the filename. Click it to open the local file, or right-click to reveal it in Finder or copy its path. Only the path is saved in the journal; if the file is moved or deleted, the thumbnail may become unavailable.
File links in conversation messages also resolve relative paths against the Pickle’s working directory, not Picky’s own directory. Absolute and ~-prefixed paths work too. If a local file cannot be found or opened, Picky reports the problem instead of silently ignoring the click.
Tool History is a local inspection surface for the current user, so treat visible tool outputs and diffs as potentially sensitive project context.