Files and the editor
Browse, search, upload, preview and edit the files in a session's workspace, from any client.
A session is attached to a folder on one of your machines, and Happier gives you that folder directly — not a copy, and not a summary the agent wrote. You can read what the agent is working on, fix a typo yourself, drop a screenshot into the repository, or open the file it just mentioned, without leaving the session.
Browsing and previewing files is part of the normal session UI. The embedded editor is a toggle under Settings → Features → Embedded file editor, on by default. Some actions need the machine running the session to be reachable — though if the session is inactive and the machine is still online, Happier can still load file data through the machine-level workspace APIs.
Where it appears
Desktop layout: sidebar + details pane
The workspace UI is designed around two complementary surfaces:
- Right sidebar: quick navigation, tree/status browsing, branch summary, changed-files list, history list
- Details pane: deep work on the currently opened item
Typical flow:
- Open Files or Git in the right sidebar.
- Click an item to open it in the details pane.
- Keep that item as a temporary preview tab, or pin it so it stays open while you inspect other files.
Details tabs
The details pane supports multiple tabs for:
- file previews
- editable files
- review tabs
- historical commit diffs
- stash details
Important behaviors:
- Tabs keep their local state while you switch between them.
- Scroll position is preserved when you return to a tab.
- If you start editing a file, Happier keeps that editor state instead of reloading it on every tab switch.
- Pinned tabs stay open until you explicitly close them.
- On smaller layouts, the details surface can switch into an overlay/focused mode instead of permanently shrinking the main session area.
Focus / fullscreen mode
The details pane includes a focus mode so you can temporarily hide the left session area and give more room to the current review/editor context.
This is useful when:
- reviewing a large diff
- editing a file side-by-side with the Git sidebar
- working on a smaller laptop or browser window
On phone-sized layouts the same surfaces live in the mobile Cockpit, which gives Files and Git their own tabs.
Files
The Files tab is the in-session file manager for the current workspace.
What you can do
- Browse the repository tree.
- Search for files in the current workspace.
- Create files and folders.
- Upload files into the workspace.
- Choose an explicit upload destination when you do not want the project root.
- Rename and delete files or folders.
- Download a single file.
- Download a folder as a
.zip. - Download a single file as a
.zipwhen you want archive-style handoff symmetry with folder downloads. - Open a file in preview or edit mode.
- Filter the file tree down to modified files only.
- Watch transfer progress and cancel an upload or download that is still running.
Opening a file uses the same details surface whether you start from the file tree, a changed-file row, a review diff, a transcript file link, a review-comment jump, or a linked-file chip in the composer.
Tree rows and status badges
The file tree is repository-aware.
When source-control data is available, Happier can show:
- modified / added / removed badges
- line-count summaries (for example additions/removals)
- folder-level summaries aggregated from descendants
This gives you a lightweight “what changed here?” signal without leaving the Files tab.
Long paths are formatted so the filename stays readable. On web, deeply nested directories use start-side ellipsis behavior, so the left side of a long path is shortened before the filename gets squeezed.
Search and modified-only filtering
Use the Files search field when you already know roughly what you want.
Use the modified-only filter when you want the tree to behave more like a focused “changed files” explorer.
Typical use cases:
- narrow a large repo to the files touched by the current task
- find a config file by name, then jump straight into the editor
- browse only modified files while still keeping folder context
Create files and folders
The Files toolbar includes actions to create:
- a new file
- a new folder
These actions are meant for lightweight workspace edits without leaving the session.
Uploads
Happier supports several upload flows:
- Upload files from the Files toolbar
- Upload folder on web
- Drag and drop files or folders on web
- Drop onto a directory to upload directly into that directory
- Preserve relative folder structure when you upload a folder or nested tree
Platform notes:
- Web: supports drag/drop, multi-file upload, and folder upload
- iOS / Android: supports file picking; folder upload is web-only
If your goal is to send a file with your next message instead of placing it into the workspace, use the session Attachments flow instead.
See: Attachments & image previews
Upload destination selection
The toolbar upload menu includes an upload destination selector.
- If you leave it empty, Happier uploads into the project root.
- If you set a workspace-relative path, Happier uploads into that destination and creates missing parent directories as needed.
- Drag/drop over a specific folder row overrides the root/default destination and uploads into that folder.
Typical use cases:
- send generated assets into
docs/assets - upload logs into
.project/logs/... - drop a folder directly into
src/components
Upload conflict handling
When uploaded files already exist at the destination, Happier asks how to resolve the conflict batch:
- Skip
- Replace
- Keep both
Keep both is the default. Happier automatically creates a suffixed name such as file (1).txt.
Transfer progress and cancel
Uploads and downloads run as managed transfers instead of fire-and-forget actions.
- Happier shows transfer progress while the upload or download is still active.
- You can cancel a transfer before it finishes.
- Folder
.zipdownloads are built first, then streamed back in chunks. - Direct file preview, file download, folder download, and review/diff loading all use the same transfer/decryption path for session workspace data.
Platform notes:
- Web: downloads use the browser download flow.
- iOS / Android: downloads are written to a temporary local file and then passed to the system share/open flow.
Rename, delete, and download
Each tree row exposes an actions menu.
For files, available actions include:
- Rename
- Delete
- Download
- Download as
.zip - Copy path
For directories, available actions include:
- Rename
- Delete
- Download as
.zip - Copy path
Directory deletion is confirmed explicitly and applies recursively.
File preview and editing
Opening a file from the Files tab or from Review opens it in the details pane.
Depending on the file type, Happier can show:
- a text preview
- a live editor
- an image preview
- a binary-file placeholder when inline rendering is not appropriate
Image and binary handling
Happier now treats image previews as a first-class workflow:
- common raster images can be previewed inline
- SVG files can also be previewed instead of being treated as opaque binaries
- true binary files stay safe and do not try to render through the text diff pipeline
If a file has no textual diff (for example an image or binary blob), Happier avoids crashing the diff renderer and falls back to the correct preview/placeholder path instead.
Editing behavior
The editor is meant to feel like a real editor, not a disposable preview:
- switching tabs does not discard in-progress edits
- opening another file does not replace a pinned editor tab
- reopening the same tab restores the state you left it in
This matters when you:
- compare two files while editing one of them
- jump between Review and an editor tab
- switch sessions and come back later
File details action bar
File details use one shared action bar for preview, diff, edit, commit selection, and revert actions.
Depending on the file and repository state, it can include:
- a file/diff view dropdown
- a pending/included/combined diff dropdown
- an edit action
- Select for commit or Remove from selection
- selected-line actions when line-level selection is supported
- a revert action when the file can be reverted safely
On wide layouts, the path and actions share one horizontal row. On narrow layouts, Happier wraps the actions into a compact second row so the path, filename, and important actions stay readable.
Link project files from the session composer
The session composer includes a Link file chip.
Use it when you want to attach workspace context to your next message without manually typing paths.
What it does
- Opens a popover anchored to the composer
- Reuses the same repository/file browsing model as the file sidebar
- Lets you search and pick project files directly from the current workspace
This is useful for prompts like:
- “Explain why this file changed”
- “Refactor the files I linked”
- “Compare these two files”
You can also use @-style file search in the composer where supported. The goal is the same: quickly attach relevant workspace context.
Open workspace file links from the transcript
When an assistant response includes a markdown link to a file in the current workspace, Happier can turn that link into in-app file navigation instead of sending you to a broken browser URL.
Supported link shapes include:
- workspace-relative links such as
src/index.ts - links with line and column suffixes such as
src/index.ts:12orsrc/index.ts:12:4 - absolute local paths inside the workspace
file://URLs inside the workspace- loopback-expanded links from the web app, such as
http://localhost:18829/Users/alice/project/src/index.ts:12 - Windows drive paths such as
C:\Users\Alice\project\src\index.ts - Windows
file:///C:/...links and UNC-style file URLs inside the workspace
Happier only opens links that resolve inside the current workspace. Links outside the workspace, traversal paths, and arbitrary non-loopback http/https URLs stay external or are ignored for workspace navigation.
On desktop, opening a workspace file link opens the right sidebar/details pane. On phone-sized layouts, it opens the file in the Tabs surface with the session header still visible.
Limits and safety
- Missing parent directories are created automatically where the operation supports it.
- File preview is size-bounded, and folder zip and download flows are size-limited and checked by the daemon.
- Folder upload is web-only.
Related
- Diffs and review — reading what changed.
- Git — staging, committing and branches.
- Markdown and diagrams — the rich editor for Markdown files.
- Attachments and image previews