Sign in
Join now
albedo
karitham.dev
/
Star
Starred
Star
Something went wrong. Try again.
Fork
0
Eye filled
Watch
Watching
Watch
small gleam coding and (not yet) persistent agent daemon with a detachable cli
forked from
okami.mom/albedo
Star
Starred
Star
Something went wrong. Try again.
Fork
Eye filled
Watch
Watching
Watch
Overview
Overview
Issues
Issues
Pulls
Pulls
Pipelines
Pipelines
albedo
/
cli
/
internal
/
tui
1 folder
·
186 files
at
main
ptr.pet
·
tui: a dagger marks session overrides on /extensions and the caps pages; /work dims resolved rows, /quota aligns its last column
·
5d ago
e2387f1b
testdata
tui: agents, sessions, chat, context and tree keep what they are about at the in-between sizes
5d ago
action_preview_test.go
tui: read tool title from daemon and drop client title parsing
6d ago
agents_canvas.go
feat(api)!: migrate daemon and clients to protocol 3
3w ago
agents_events.go
tui: tree and context inspector on listView, shared confirm for agent delete
3w ago
agents_graph.go
tui: agents, sessions, chat, context and tree keep what they are about at the in-between sizes
5d ago
agents_identity_test.go
refactor(cli): apply Go modernize simplifications
3w ago
agents_operations.go
tui: tree and context inspector on listView, shared confirm for agent delete
3w ago
agents_preview.go
feat(progress): reduce preview parsing from O(s*n^2) to O(n)
4w ago
agents_recovery_test.go
feat(api)!: migrate daemon and clients to protocol 3
3w ago
agents_render.go
tui: agents, sessions, chat, context and tree keep what they are about at the in-between sizes
5d ago
agents_subscription.go
feat(tui): show subagent tasks and progress in agent cards
3w ago
agents_view_test.go
tui: tree and context inspector on listView, shared confirm for agent delete
3w ago
agents_view.go
tui: cache frame pieces, render live replies block by block, rest when idle
1w ago
app_chat.go
sessions: a family change no longer invalidates a configuration edit
1w ago
app_commands_test.go
tui: save a model's cap and compact window as you set them
6d ago
app_commands.go
tui: save a model's cap and compact window as you set them
6d ago
app_login.go
feat(api)!: migrate daemon and clients to protocol 3
3w ago
app_messages.go
tui: agents, sessions, chat, context and tree keep what they are about at the in-between sizes
5d ago
app_navigation.go
tui: timers are injected into the models, and the e2e driver delivers them at once instead of sleeping through them
6d ago
app_preferences.go
tui: agents, sessions, chat, context and tree keep what they are about at the in-between sizes
5d ago
app_session_facts_test.go
tui: keep the root's session listing instead of copies, build picker rows when shown
1w ago
app_session_facts.go
tui: keep the root's session listing instead of copies, build picker rows when shown
1w ago
app_sessions.go
tui: timers are injected into the models, and the e2e driver delivers them at once instead of sleeping through them
6d ago
app_view_test.go
tui: cache frame pieces, render live replies block by block, rest when idle
1w ago
app_view.go
tui: cache frame pieces, render live replies block by block, rest when idle
1w ago
app.go
tui: timers are injected into the models, and the e2e driver delivers them at once instead of sleeping through them
6d ago
artifact_test.go
tui: artifact open falls back to a free port and shows why albedo web did not start
6d ago
artifact.go
tui: artifact open falls back to a free port and shows why albedo web did not start
6d ago
attachments.go
feat: multiple images, collapsed pastes, and an attachment strip in the prompt
3w ago
bootstrap.go
perf(tui): reuse prepared startup data
3w ago
bounded_history_test.go
refactor(tui): replace pick helpers with explicit branches
1mo ago
bounded_history.go
tui: read tool title from daemon and drop client title parsing
6d ago
burst_test.go
cli: albedo web serves artifact pages on /frame, and the tui opens them from a row under the burst
1w ago
burst.go
tui: read tool title from daemon and drop client title parsing
6d ago
capability_pages_test.go
tui: settings screens keep their keys, scope and problems visible at narrow sizes
5d ago
capability_pages.go
tui: a dagger marks session overrides on /extensions and the caps pages; /work dims resolved rows, /quota aligns its last column
5d ago
cards_test.go
trace: calls inside a cell record how long they took and whether they worked, and verbose cards show it; the tui keeps mcp and cua traces
2w ago
cards.go
cli: albedo web serves artifact pages on /frame, and the tui opens them from a row under the burst
1w ago
chat_focus_test.go
tui: the status read itself refuses a chat with no client, so a page change before any session opens cannot panic either
1w ago
chat_focus.go
tui: the status read itself refuses a chat with no client, so a page change before any session opens cannot panic either
1w ago
chat_footer.go
tui: cache frame pieces, render live replies block by block, rest when idle
1w ago
chat_history.go
tui: cache frame pieces, render live replies block by block, rest when idle
1w ago
chat_input.go
tui: chat keeps the same one-cell margin as every screen
5d ago
chat_layout.go
tui: chat keeps the same one-cell margin as every screen
5d ago
chat_messages.go
rewind: /tree cuts a session back to before a user message and archives the rest, with an optional summary; /fork keeps the branch
2w ago
chat_navigation_test.go
tui: anchor reading position to history entry spans during reflow
1w ago
chat_operations.go
tui: clear stopping state when session becomes idle
3w ago
chat_stopping_test.go
tui: clear stopping state when session becomes idle
3w ago
chat_stream.go
tui: cache frame pieces, render live replies block by block, rest when idle
1w ago
chat_subscription.go
tui: the status read itself refuses a chat with no client, so a page change before any session opens cannot panic either
1w ago
chat_view.go
tui: agents, sessions, chat, context and tree keep what they are about at the in-between sizes
5d ago
chat.go
cli: albedo web serves artifact pages on /frame, and the tui opens them from a row under the burst
1w ago
chips.go
tui: pointer app model, shared styles, reused glamour renderers, own transcript pane, reuse rows across older pages, gogc 50
3w ago
chroma_lookup_test.go
tui: build chroma lexers and styles on first use through a patched chroma
1w ago
chroma_patch_test.go
tui: build chroma lexers and styles on first use through a patched chroma
1w ago
clipboard_terminal_test.go
tui: probe the terminal for kitty clipboard support before pasting an image
3w ago
clipboard_terminal.go
tui: probe the terminal for kitty clipboard support before pasting an image
3w ago
clipboard_test.go
fix(tui): close clipboard stdout on cancellation
1mo ago
clipboard.go
fix(tui): paste clipboard images over ssh with OSC 5522
3w ago
commands.go
Merge main into discord-bots
2w ago
config_form.go
add /config command to allow extensions to expose settings
2w ago
config_page_test.go
tui: model, quota, caps, config and login wrap their panes and keep their keys at the in-between sizes
5d ago
config_page.go
tui: /config lists one edit key
5d ago
confirm.go
tui: listView, confirm and one fuzzy matcher for list screens to share
3w ago
context_inspector_test.go
tui: tree and context inspector on listView, shared confirm for agent delete
3w ago
context_inspector.go
tui: agents, sessions, chat, context and tree keep what they are about at the in-between sizes
5d ago
discord_form.go
discord: remove automated bot creation
2w ago
discord_page_test.go
discord: remove automated bot creation
2w ago
discord_page.go
discord: remove automated bot creation
2w ago
discord_render.go
tui: errors wrap above the keys, group headings keep their gap, and pane facts break paths after a slash
5d ago
editor_test.go
tui: ctrl-click a path in the transcript to open it in an editor
2w ago
editor.go
tui: ctrl-click a path in the transcript to open it in an editor
2w ago
effort_selector.go
tui: pointer app model, shared styles, reused glamour renderers, own transcript pane, reuse rows across older pages, gogc 50
3w ago
error_routing_test.go
tui: /extensions on listView: filter, details beside the list, enter for global and shift+enter for this session
3w ago
extension_picker.go
tui: a dagger marks session overrides on /extensions and the caps pages; /work dims resolved rows, /quota aligns its last column
5d ago
extension_scope_test.go
tui: a dagger marks session overrides on /extensions and the caps pages; /work dims resolved rows, /quota aligns its last column
5d ago
folder_picker_test.go
tui: /folders shows a failed listing as an error and drops the keys it cannot use
5d ago
folder_picker_view.go
tui: /folders shows a failed listing as an error and drops the keys it cannot use
5d ago
folder_picker.go
tui: timers are injected into the models, and the e2e driver delivers them at once instead of sleeping through them
6d ago
folder_query.go
feat(api)!: migrate daemon and clients to protocol 3
3w ago
folder_requests.go
tui: timers are injected into the models, and the e2e driver delivers them at once instead of sleeping through them
6d ago
form.go
tui: model, quota, caps, config and login wrap their panes and keep their keys at the in-between sizes
5d ago
frame_cache_test.go
tui: cache frame pieces, render live replies block by block, rest when idle
1w ago
frame.go
tui: errors wrap above the keys, group headings keep their gap, and pane facts break paths after a slash
5d ago
glance_test.go
make schedule visible
3w ago
header_test.go
tui: cache frame pieces, render live replies block by block, rest when idle
1w ago
highlight_lines_test.go
tui: the highlighted-line cache belongs to its chat, so it goes when the chat does
2w ago
host_auth.go
feat(api)!: migrate daemon and clients to protocol 3
3w ago
ink_other.go
fix(tui): report terminal restoration failures during color detection
4w ago
ink_test.go
Add /cd: a folder picker that moves a session, and descendants follow
1mo ago
ink_unix.go
fix(tui): report terminal restoration failures during color detection
4w ago
ink.go
tui: one delimiter table for math, bytes.Cut over hand scans, and the fork's IndentWriter for list items
2w ago
lifecycle_regression_test.go
tui: page_view docs on listFrame and listView, always-live filter, shared confirm, ctrl+r retry, gallery of every page state
3w ago
list_view_test.go
tui: stacked panes take the rows a short list leaves, and a quiet status waits for every key
5d ago
list_view.go
tui: errors wrap above the keys, group headings keep their gap, and pane facts break paths after a slash
5d ago
live_rows_test.go
tui: cache frame pieces, render live replies block by block, rest when idle
1w ago
location.go
tui: show remote paths relative to the host's home, as scp reads them
4w ago
login_accounts.go
tui: /login makes any number of named profiles per provider, edits a profile's account with ctrl+e and renames it with ctrl+r
1w ago
login_list_test.go
tui: model, quota, caps, config and login wrap their panes and keep their keys at the in-between sizes
5d ago
login_messages.go
feat(api)!: migrate daemon and clients to protocol 3
3w ago
login_pick.go
tui: /login makes any number of named profiles per provider, edits a profile's account with ctrl+e and renames it with ctrl+r
1w ago
login_profile_test.go
tui: /login makes any number of named profiles per provider, edits a profile's account with ctrl+e and renames it with ctrl+r
1w ago
login_profile.go
tui: /login makes any number of named profiles per provider, edits a profile's account with ctrl+e and renames it with ctrl+r
1w ago
login_provider.go
tui: /login makes any number of named profiles per provider, edits a profile's account with ctrl+e and renames it with ctrl+r
1w ago
login_view.go
tui: model, quota, caps, config and login wrap their panes and keep their keys at the in-between sizes
5d ago
login.go
tui: model, quota, caps, config and login wrap their panes and keep their keys at the in-between sizes
5d ago
mail_identity_test.go
fix(stream): restore unfinished responses on session attachment
3w ago
markdown_test.go
tui: agents, sessions, chat, context and tree keep what they are about at the in-between sizes
5d ago
markdown.go
tui: agents, sessions, chat, context and tree keep what they are about at the in-between sizes
5d ago
math_test.go
tui: one delimiter table for math, bytes.Cut over hand scans, and the fork's IndentWriter for list items
2w ago
math.go
tui: one delimiter table for math, bytes.Cut over hand scans, and the fork's IndentWriter for list items
2w ago
mcp_form_test.go
tui: skills, instructions and mcp on listView with global/session toggles and a pane without enter
3w ago
mcp_form.go
tui: model, quota, caps, config and login wrap their panes and keep their keys at the in-between sizes
5d ago
model_change_test.go
tui: save a model's cap and compact window as you set them
6d ago
model_picker_test.go
tui: errors wrap above the keys, group headings keep their gap, and pane facts break paths after a slash
5d ago
model_picker_view.go
tui: model, quota, caps, config and login wrap their panes and keep their keys at the in-between sizes
5d ago
model_picker.go
tui: save a model's cap and compact window as you set them
6d ago
model_search.go
tui: listView, confirm and one fuzzy matcher for list screens to share
3w ago
moods.go
ssh: say when a probe is copying the kernel to a host, in the picker and the chat
4w ago
notice.go
refactor(tui): replace pick helpers with explicit branches
1mo ago
older_history_test.go
tui: pointer app model, shared styles, reused glamour renderers, own transcript pane, reuse rows across older pages, gogc 50
3w ago
operation_error.go
sessions: a family change no longer invalidates a configuration edit
1w ago
page_render.go
tui: a dagger marks session overrides on /extensions and the caps pages; /work dims resolved rows, /quota aligns its last column
5d ago
page_secret_test.go
tui: page_view docs on listFrame and listView, always-live filter, shared confirm, ctrl+r retry, gallery of every page state
3w ago
page_view_test.go
tui: page_view docs on listFrame and listView, always-live filter, shared confirm, ctrl+r retry, gallery of every page state
3w ago
page_view.go
tui: keep labels, group headings and the footer in place on every list screen
5d ago
page.go
tui: delete the old page helpers and inkWrap that no screen uses
3w ago
pending_test.go
refactor(cli): require explicit daemon client dependencies
1mo ago
perf_bench_test.go
tui: keep the root's session listing instead of copies, build picker rows when shown
1w ago
perf_harness_test.go
tui: benchmark suite and live-session fixture capture
1w ago
picker_test.go
tui: sessions search back to substring match per word, listed order
3w ago
picker.go
tui: sessions search back to substring match per word, listed order
3w ago
prompt_multiline_test.go
tui: pointer app model, shared styles, reused glamour renderers, own transcript pane, reuse rows across older pages, gogc 50
3w ago
protocol3_helpers_test.go
feat(api)!: migrate daemon and clients to protocol 3
3w ago
push_events_test.go
tui: cache frame pieces, render live replies block by block, rest when idle
1w ago
quota_route_test.go
tui: replace the generic /quota page with a screen of latest limits, bars and per-limit trails
2w ago
quota_test.go
tui: model, quota, caps, config and login wrap their panes and keep their keys at the in-between sizes
5d ago
quota_view.go
tui: a dagger marks session overrides on /extensions and the caps pages; /work dims resolved rows, /quota aligns its last column
5d ago
quota.go
tui: replace the generic /quota page with a screen of latest limits, bars and per-limit trails
2w ago
rename.go
feat(api)!: migrate daemon and clients to protocol 3
3w ago
rowactions_test.go
tui: verbose mode draws each call as a card with its code, calls and output, folded to their start
2w ago
rowactions.go
cli: albedo web serves artifact pages on /frame, and the tui opens them from a row under the burst
1w ago
screen_lifecycle_test.go
perf(tui): reuse prepared startup data
3w ago
selection.go
fix macos terminal.app rendering
3w ago
session_choice.go
tui: folders, discord and webhooks keep names, previews and errors whole at 100x24 and 80x24
5d ago
session_configuration_test.go
tui: save a model's cap and compact window as you set them
6d ago
session_preferences_test.go
tui: agents, sessions, chat, context and tree keep what they are about at the in-between sizes
5d ago
session_viewer_test.go
tui: keep the root's session listing instead of copies, build picker rows when shown
1w ago
session_viewer_view.go
tui: errors wrap above the keys, group headings keep their gap, and pane facts break paths after a slash
5d ago
session_viewer.go
tui: keep the root's session listing instead of copies, build picker rows when shown
1w ago
settled_cache_test.go
tui: keep the root's session listing instead of copies, build picker rows when shown
1w ago
settled_lines_test.go
test(tui): check survivor ownership after trimming
4w ago
shot_agents_test.go
tui: shot the missing chat, agents, sessions, context and tree states
5d ago
shot_caps_test.go
tui: shot the missing model, login, config, caps, extensions, quota and work states
5d ago
shot_chat_test.go
tui: read tool title from daemon and drop client title parsing
6d ago
shot_config_test.go
tui: shot the missing model, login, config, caps, extensions, quota and work states
5d ago
shot_context_test.go
tui: shot the missing chat, agents, sessions, context and tree states
5d ago
shot_discord_test.go
tui: shot the missing webhooks, discord and folders states
5d ago
shot_extensions_test.go
tui: shot the missing model, login, config, caps, extensions, quota and work states
5d ago
shot_folders_test.go
tui: shot the missing webhooks, discord and folders states
5d ago
shot_login_test.go
tui: shot the missing model, login, config, caps, extensions, quota and work states
5d ago
shot_model_test.go
tui: shot the missing model, login, config, caps, extensions, quota and work states
5d ago
shot_pages_test.go
tui: shot the missing model, login, config, caps, extensions, quota and work states
5d ago
shot_quota_test.go
tui: shot the missing model, login, config, caps, extensions, quota and work states
5d ago
shot_sessions_test.go
tui: agents, sessions, chat, context and tree keep what they are about at the in-between sizes
5d ago
shot_test.go
tui: shot every state at 100x24 and 80x24 too
5d ago
shot_transcript_test.go
tui: shot the missing chat, agents, sessions, context and tree states
5d ago
shot_tree_test.go
tui: shot the missing chat, agents, sessions, context and tree states
5d ago
shot_webhooks_test.go
tui: shot the missing webhooks, discord and folders states
5d ago
theme_test.go
test(tui): check theme ownership through Go syntax
3w ago
theme.go
tui: keep labels, group headings and the footer in place on every list screen
5d ago
thumbnails_test.go
feat: multiple images, collapsed pastes, and an attachment strip in the prompt
3w ago
thumbnails.go
feat: multiple images, collapsed pastes, and an attachment strip in the prompt
3w ago
timers.go
tui: timers are injected into the models, and the e2e driver delivers them at once instead of sleeping through them
6d ago
transcript_readability_test.go
perf(cli): reduce struct padding
1mo ago
transcript_state_test.go
requests: tell our own prefix drift from provider cache misses; commit continue prompts and kernel notices
2w ago
transcript_state.go
tui: read tool title from daemon and drop client title parsing
6d ago
transcript.go
tui: read tool title from daemon and drop client title parsing
6d ago
tree_picker_test.go
tui: agents, sessions, chat, context and tree keep what they are about at the in-between sizes
5d ago
tree_picker.go
tui: agents, sessions, chat, context and tree keep what they are about at the in-between sizes
5d ago
turns_test.go
refactor(tui): replace pick helpers with explicit branches
1mo ago
uncertain_outcome_test.go
perf(tui): reuse prepared startup data
3w ago
unicode_render_test.go
tui: read tool title from daemon and drop client title parsing
6d ago
webhook_form.go
tui: /discord page for bots, channels, DM whitelist and automatic creation
2w ago
webhooks_page_test.go
tui: errors wrap above the keys, group headings keep their gap, and pane facts break paths after a slash
5d ago
webhooks_page.go
webhooks: serve signed deliveries on their own intake port
2w ago
webhooks_render.go
tui: errors wrap above the keys, group headings keep their gap, and pane facts break paths after a slash
5d ago