Lattice
연구를 위한 작업공간
BaseHalf는 연구·결정·파일·프로젝트 맥락을 시각화해 재사용 가능한 지도와 연결 작업으로 전환하는 AI 워크스페이스입니다
BaseHalf is a visual AI workspace for turning research, decisions, files, and project context into reusable Maps and connected work.
생산성TypeScript · CSSGitHub @Pointa-Labs온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
BaseHalf desktop version!
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Half AI. Half human. Half machine. Half flesh.
A canvas-first desktop workspace for thinking with files and agents.
BaseHalf is an open-source, local-first desktop workspace built on a real VS
Code substrate. It keeps your files in a normal folder, gives humans a
canvas/card-detail way to navigate that folder, and records how the materials
connect in the files themselves so agents can stay oriented in the same
materials.README 전문 보기 ↗Half AI. Half human. Half machine. Half flesh. A canvas-first desktop workspace for thinking with files and agents.
BaseHalf is an open-source, local-first desktop workspace built on a real VS Code substrate. It keeps your files in a normal folder, gives humans a canvas/card-detail way to navigate that folder, and records how the materials connect in the files themselves so agents can stay oriented in the same materials.
Status: BaseHalf 0.6.1 is the current public macOS Apple Silicon release.
It is usable, early, and changing quickly. The product has moved from the old
hand-rolled Electron/core shell onto vscode-base/, where VS Code provides the
application substrate and BaseHalf owns the canvas-first product layer.
Download the latest build from GitHub Releases. The current macOS build is unsigned and unnotarized, so Gatekeeper may block the first launch. After dragging the app to Applications, run:
xattr -dr com.apple.quarantine /Applications/BaseHalf.app
AI agents are good at reading and editing files, but people think through spatial context, references, partial attention, and "where was I?" signals. BaseHalf is the meeting place: a real folder remains the source of truth, while the app adds a visual canvas, file cards, Markdown projections, Git/Search/File surfaces, and agent-readable connections beside the work.
BaseHalf is not trying to become the agent. It is a substrate for compound work: humans keep the map, agents use their own tools, and both sides can inspect the same local project without a cloud account or hidden database.
The workspace map is a core part of that product direction, not a legacy
detail. Each note lists what flows into it in an upstream list that agents
read along with the note, and .bh/ holds BaseHalf project metadata such as
canvas layout, descriptions, and reading aids. BaseHalf also records what you
last selected (a folder, cards, or text in a note), so that an agent knows
what you mean by "this".
upstream frontmatter lists what flows into it, and .bh/
holds BaseHalf project metadata: canvas layout, descriptions, reading aids,
the upstream lists of non-Markdown files, and the prompts of generated
images and videos.rich by default, source for raw Markdown, and
preview for read-only rendered Markdown.BaseHalf's first-class session choices are intentionally narrow:
codex CLI as a TUI session.claude CLI as a TUI session.Extension support starts curated, not marketplace-open. BaseHalf currently allows only the extension families needed for Git/GitHub auth and the Codex / Claude agent surfaces.
BaseHalf offers to install a basehalf skill for Claude Code, Codex, and other
agents that load skills. It tells them where a card's description and
connections are, what moving a file does to them, and what the user last
selected. BaseHalf asks first and adds the skill to the agents' own settings,
not to your folder.
BaseHalf publishes context in files and never injects workspace content into
prompts. Agents read the workspace files directly, including each note's
upstream list, and learn where the rest is under .bh/ from the basehalf
skill. Claude Code TUI sessions started from Agent Area also receive a short,
static BaseHalf instruction at launch. BaseHalf no longer adds instructions to
CLAUDE.md or AGENTS.md. This protocol is the shared language between the
app, the human's visual workspace, and file-based agents:
flowchart LR
human["Human"] --> app["BaseHalf"]
app --> substrate["VS Code substrate"]
app --> files["Workspace files"]
app --> mirror[".bh/mirror"]
agent["Agent"] --> area["Agent Area"]
area --> files
area --> mirror
files --> upstream["upstream lists"]
mirror --> badge["badge.yaml"]
mirror --> canvas["canvas.yaml"]
mirror --> aids["adhd.yaml / appearance.yaml"]
mirror --> sidecar["upstream.yaml"]
mirror --> generation["generation.yaml / made.yaml"]
The format is deliberately plain:
upstream key of
its frontmatter..bh/mirror/<path>/upstream.yaml keeps the upstream list of a folder, PDF,
image, video, or other non-Markdown file..bh/mirror/<path>/generation.yaml holds the prompt, model, and settings
of its next generation, and .bh/mirror/<path>/made.yaml the record of the
generation that made it. A generation.yaml whose file does not exist yet
is a draft: a card on the canvas that has not generated..bh/mirror/<path>/badge.yaml stores a file or folder description..bh/mirror/<folder>/canvas.yaml stores the place and size of every card and
edge anchors for that folder canvas..bh/mirror/<file>/adhd.yaml stores per-file reading aids such as highlights
and read ranges, and .bh/mirror/<path>/appearance.yaml stores visual
presentation..bh/cache/ holds machine-local state: the records of generations that run
on this computer, undo stashes, recovery copies of files BaseHalf could not
read, and selection.yaml, what the user last selected, for agents to read.BaseHalf never edits your .gitignore. It writes one ignore file of its own,
.bh/.gitignore, which keeps card places (canvas.yaml) and .bh/cache/ out
of git. Descriptions, reading aids, non-Markdown upstream lists, and the
prompts, drafts, and records of generated files can be committed and travel
with the folder. Canvas viewports are kept per machine,
outside the workspace.
References are an explicit directed context-flow graph: A → B means A's
context flows into B. The graph is not a tree; many-to-many relationships and
cycles are valid, while self-references are not. Each reference is stored once,
in B's upstream list; BaseHalf derives the reverse direction ("downstream") and
never stores it. Users and Agents create cards and references explicitly, and
may edit upstream lists as ordinary text. An entry that names a missing file
stays visible as a broken entry until someone relinks or removes it. Markdown
links remain ordinary document navigation and never create a BaseHalf reference
automatically. Canvas edges visualize the same graph without relationship
labels or notes.
User files remain content truth. Automated BaseHalf services observe files and never modify them in the background; BaseHalf changes an upstream list only through an operation the user starts or confirms, or when an agent in the Agent Area moves a file through BaseHalf. Agents edit files with their own tools. Claude Code sessions that receive BaseHalf's launch context (local macOS and Linux Agent Area sessions) move files through BaseHalf, so descriptions, layout, and references follow.
.md.The smoke guards this shape in five suites: the workbench (hidden competing surfaces, the Files / Git / Search sidebar, Agent Area sessions, Source Control, and Settings), the canvas, Card Detail with its Markdown projections, navigation (Quick Open, Quick Text Search, and Explorer routing), and the image and video cards.
BaseHalf-0.6.1-darwin-arm64.dmg from
the latest release.BaseHalf.app into Applications.xattr -dr com.apple.quarantine /Applications/BaseHalf.app
The app's update feed is served from GitHub Releases through the signed BaseHalf update manifest.
Current desktop development happens in vscode-base/. The older packages/
tree is useful for migration history and tests, but new desktop-facing product
work should be VS Code-aligned workbench/platform code.
Requirements:
24.17.0 from vscode-base/.nvmrc.cd vscode-base
nvm use
npm install
npm run compile
./scripts/code.sh
Useful checks:
cd vscode-base
npm run typecheck-client
./scripts/test.sh
npm run basehalf:smoke
For BaseHalf UI/routing changes, npm run basehalf:smoke is the important
product smoke. If out/ is already current, npm run basehalf:smoke-no-compile
skips the compile step. Its steps are in suites by area, each on a BaseHalf of
its own, and -- --suite canvas runs one of them
(vscode-base/scripts/basehalf-smoke/README.md).
Package a macOS release build:
cd vscode-base
build/basehalf/package-darwin.sh arm64
vscode-base/ current desktop product source
src/vs/workbench/basehalf/ BaseHalf's workbench code, a folder per
feature: canvas, card detail, Agent Area,
video, Sequence, references, navigation,
workspace
src/vs/platform/basehalfProviders/ the image and video provider modules and
the model catalog, in the shared process
src/vs/platform/update/ BaseHalf's update service and protocol,
beside VS Code's (basehalf*.ts)
extensions/basehalf/ rich Markdown editor, in-card note
editor, and other bundles
build/basehalf/ macOS package, DMG, and update scripts
BASEHALF_UPSTREAM.md VS Code import baseline
docs/ public specs, decisions, and policies
harness/ BaseHalf's progressive development harness
private-docs/ private product/architecture decision corpus
packages/ historical BaseHalf core/desktop material
Community links are intentionally lightweight while BaseHalf is early:
If you are trying BaseHalf with Codex, Claude Code, OpenCode, Gemini CLI, or another local-file agent, we would love to hear what you build.
BaseHalf is early and deliberately narrow. Please open an issue or discussion before sending a non-trivial external PR so we can align on scope first.
Maintainers push main directly after local lint, typecheck, tests, and an
in-session adversarial review.
Bug reports, ideas, and discussion are always welcome. By participating you agree to our Code of Conduct.
BaseHalf is Apache-2.0. VS Code-derived portions in vscode-base/
retain their upstream MIT license and third-party notices.
Contributions require a signed CLA. The "BaseHalf" name and logo are trademarks of Pointa Labs, Inc. See the trademark policy.