Skip to content
ImagingSolutionPublic

About

Windows MDI terminal for AI coding CLIs. Run Claude Code, Codex, Copilot, Antigravity and Grok sessions side by side in one window, with a project explorer, a git/GitHub panel, and context and cost readouts.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

 

History

326 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Snipyard

Formerly Claucraft.

A Windows MDI (Multiple Document Interface) terminal application for AI coding CLIs, built with Avalonia UI.

Claude Code is the default, and Codex CLI, GitHub Copilot CLI, Antigravity CLI and Grok CLI can be picked per session. Run several sessions side by side in one window - or dragged out into windows of their own - each viewable as a raw terminal or as a desktop-app-style Chat View, with a project explorer, a git/GitHub panel, snippets, cost and usage readouts, and a dark/light theme.

MDI Windows

Explorer

Snippets

Features

Windows and layout

  • Welcome Page - VS Code-style startup page with new project, previous project, and recent projects list. Previous/recent projects automatically resume with -c
  • MDI Terminal Windows - Open multiple sessions in child windows arranged as Tile / Tile Horizontally / Tile Vertically / Full View
  • Docking Layout - Window positions are a dock tree, not coordinates: panes split horizontally or vertically and the splitters between them are draggable
  • Tab Drag - Drag a window by its tab to reorder it along the strip, dock it into another pane, move it across to another window, or drop it clear of everything to give it an OS window of its own. The session keeps running through the move
  • Windows Panel - Side panel listing every open window with a status dot and the conversation summary (preferred over the terminal title). Terminal output preview on hover. Click to switch, × to close
  • Agent View - Background sessions (claude agents) are listed under the window they were dispatched from, with their state, what they are waiting on, and whether a process is still alive. Read straight off ~/.claude/jobs rather than by running the CLI, so the 700 ms panel refresh stays free
  • Subagent Monitor - The same panel shows a session's in-flight subagents (label, type, model, depth) while they run
  • Tab Management - Right-click context menu (Close / Close Others / Close to Right / Duplicate / Export Output). Double-click to rename. Auto-names from the first user input or the session summary
  • Named Workspaces - Save and restore any number of layouts. Restoring reopens the same transcripts with -r, so the conversations come back instead of blank sessions

Sessions and AI CLIs

  • CLI Provider Support - Claude Code, Codex CLI, GitHub Copilot CLI, Antigravity CLI and Grok CLI, each with its own executable (claude, codex, copilot, agy, grok), command-line shape, one-shot invocation, config folder and launch profiles. Switchable per session from the toolbar; the executable and the new/continue/resume argument templates are editable in Settings
  • Host Shell - Launch the CLI under cmd.exe or PowerShell. Argument quoting follows whichever shell is chosen, and a PowerShell that is not installed falls back to cmd.exe instead of leaving a dead tab
  • Session Management - Resume previous sessions with AI-generated titles (from sessions-index.json) and timestamps. The picker is searchable, and a session can be thrown away from it
  • Session Index Auto-Creation - Creates and updates sessions-index.json per project so the CLI can fill in AI-generated conversation summaries
  • Running Session Guard - A session only runs in one place at a time, so launching one another process already holds is blocked before it can die at the prompt
  • Project Context Switching - Switching MDI windows switches the project folder, explorer, session list and git status with it
  • Execution Targets (WSL / SSH) - The New Session menu lists installed WSL distros, recent and ~/.ssh/config SSH hosts, and a host:/path prompt. The CLI runs through wsl.exe / ssh.exe with each argument escaped for the remote side. WSL windows read their transcript through \\wsl.localhost, so Chat View works; SSH windows stay in the terminal view. Remote windows are left out of saved workspaces
  • Scheduled Tasks - Open a new session in a chosen project with a prompt - once, daily or every N minutes - while the app is running. A slot missed by more than 30 minutes is skipped rather than caught up
  • Remote Control - A session tab's menu sends /remote-control to continue the session from another device
  • Launch Profiles - Light / Standard / Deep from the toolbar, applied on every launch path - new, -c continue and -r resume alike - so a resumed session cannot silently balloon back to an unbounded context. Light ships its own --settings file that trims MCP servers, tool descriptions and auto-memory out of the prompt prefix; Deep switches to --model opus --effort high
  • Launch Model & Effort - Pin a model and effort level when a session starts (Claude only) instead of switching mid-conversation and throwing away the prompt cache. The choice carries across new windows, restores and launches
  • Git Worktree Isolation - Give a session its own git worktree checkout (under a Snipyard-managed folder, on snipyard/-prefixed branches) so several windows on one repo can work in parallel without clobbering each other
  • Session Hand-off - When context runs low (an absolute token threshold, so it still fires on 1M-context models), hand off to a fresh session with a brief extracted from the transcript locally. It costs no tokens, unlike /compact, and the brief lands in the new session's input box to be edited before anything is sent
  • Resume Cost & Token Badge - The session picker shows each session's last known context size as a badge, with a tooltip estimate of what resuming it will cost. Right-click for "Start fresh from brief" to hand off without reopening the old session

Terminal

  • VT100/ANSI Terminal - Custom parser over Windows ConPTY: SGR with 256-colour and truecolour, alternate buffer, scroll regions, wide characters, Unicode code points and zero-width combining marks, and a 10,000-line scrollback
  • Caret and Line Editing - A blinking insert-bar caret, click to move it, Shift+arrows to select, and undo/redo of the CLI's input line
  • Terminal Search (Ctrl+F) - Full-text search across output and scrollback with match highlighting, navigation, regex mode and a case-sensitive toggle
  • Prompt Navigation (Ctrl+↑/↓) - Move between user questions with a position counter (Q 2/5). Tracks input positions live and scans buffer separators for past conversations
  • Font Zoom (Ctrl+Scroll) - Change font size with the wheel; Ctrl+0 resets
  • Expanded Input Panel - Multi-line input in a drag-resizable panel. Enter for newline, Ctrl+Enter to send, Escape to collapse
  • @-Mention Completion - Typing @ completes file paths from a project file index, and files can be picked from the input row
  • Shift+Enter Line Break - Insert a newline without submitting
  • File Drag & Drop - Drop files onto the terminal to insert their paths, or drag them in from the Explorer panel
  • Image Attachments - Clipboard images (Ctrl+V or Alt+V) and pasted or dropped image files go to a thumbnail strip above the input instead of being inserted as text. Click a thumbnail to view it, × to remove it; the images are sent with the prompt
  • Bracketed Paste Mode - Wraps pasted text in bracket sequences for modern shells
  • Terminal Output Export - Save output as a text file from the tab context menu

Project and files

  • Project Explorer - File tree with syntax-aware icons and colour-coded file types (40+ extensions), Windows shell icons, auto-refresh on file system changes, and file preview on selection. Ctrl/Shift+click selects several items, and dragging them drops every path into the terminal as @-references
  • In-App Text Editor - Edit text files straight from the explorer (Ctrl+S to save), preserving the original encoding, line endings and BOM. Binary, oversized or non-UTF8 files stay read-only instead of getting corrupted
  • Open With - Right-click a file to hand it to the Windows "Open with" picker
  • Safe Delete - Deleting from the explorer sends to the Windows Recycle Bin rather than removing permanently

Source control

  • Source Control Panel (Ctrl+Shift+G) - Unified git + GitHub sidebar: Fetch / Pull (rebase) / Push with a quiet 5-minute background auto-fetch, branch switch/create/delete/merge, staging per file or all, and banners for conflicts or an interrupted rebase/merge with an "Ask the AI" button that drafts a JA/EN prompt naming the affected files. Every operation is non-destructive by design - no force-push, reset --hard or branch -D
  • AI Commit Messages - Draft a commit message in English or Japanese from the staged diff, generated locally through the active CLI's one-shot mode without joining the live session
  • Secret Scan - Before a commit, the staged diff is scanned file by file for credentials and keys, and flagged files are called out rather than quietly committed
  • Risky File Warnings - Staging policy flags files that were probably not meant to be committed - credential files, build output - and a per-clone ignore list keeps the ones you have decided about out of the way
  • GitHub Pull Requests - List open PRs, approve, create and open in the browser via gh, right inside the panel. Hides itself if gh isn't installed/authenticated or the remote isn't GitHub
  • CI Status & Review Comments - Each open PR shows a coloured dot for its combined check status, polled every minute while the panel is open. A fold-out lists failing checks and every review, conversation and line comment, with buttons that hand them to the AI to fix
  • Repository Creation - Pushing a repo with no remote opens an owner / name / description / private dialog and creates the GitHub repository with gh repo create
  • Git Error Hints - Common git failures get a localized explanation above git's own output, and branches checked out in another worktree are greyed out in the branch menus with the reason
  • Commit Graph & Diff Viewer - Full commit history as a lane graph (as an MDI child or its own window, with Fetch / Pull / Push of its own) with lines coloured per branch, tag creation, plus a virtualized diff viewer. Select a diff range or right-click a changed file to send @path:12-20 <comment> straight to the terminal

Knowing what the AI is doing

  • Mode Badge - Shows the session's mode (manual / auto-accept / plan / bypass) in the status bar, painted the colour the CLI paints it. Click to cycle. If a CLI update renames the modes, it falls back to "Switch Mode" and still sends Shift+Tab
  • Model & Effort - The active model and reasoning effort are shown in the status bar and switchable from it, and a model switch made inside the CLI is followed. The model list learns the newest version of each model line from recent transcripts, so it does not go stale when a new model ships
  • Activity Indicator - Says what the AI is doing while it is quiet - reading a file, running a command, searching - with elapsed time, plus a sweep bar under the input row while a turn is in flight
  • Context Meter - Reads the context left out of the CLI's own output and shows it as a meter, with one-click /compact when it runs low
  • Cache Expiry Warning - An idle session close to its prompt-cache expiry gets a "compact now" banner, and switching model or effort mid-session compacts first when there is enough context worth saving
  • Marginal Cost Readout - What the last turn cost, and what the next one costs just to re-read the conversation, so a session that has grown expensive says so instead of being discovered on the invoice
  • Usage in Plain Words - "about 840 left, resets in 5h" instead of a bare message count, measured against the plan (Pro / Max 5x / Max 20x) chosen in Settings. Aggregated from the session transcripts themselves
  • Rate Limit Readout - Utilization and reset countdown for both the 5-hour and 7-day plan windows. Claude sessions started from Snipyard get a status line that saves the rate_limits Claude Code itself reports (Pro/Max, after the first reply); a status line of your own keeps showing. It can be turned off in Settings > Live status, at the cost of the readout, and while it is on Claude Code hides its footer key hints. A claude_usage_cache.json left in the temp folder by your own script is read as a fallback. Snipyard never uses your Claude sign-in itself
  • Permission Prompts, Explained - The approval overlay says what the command actually does and rates it read-only / changes files / deletes or reaches the network
  • Error Diagnosis Banner - Known failures (signed out, rate limited, usage limit, network down, outdated CLI) surface as a banner with the fix one click away, and advisory banners hide themselves again
  • Stop Button - A stop control on the input row of whichever window is working, for anyone who does not know Escape interrupts the AI
  • Turn-End Frame Blink - The active window's blue frame blinks twice when the AI hands the turn back, so a finished session is visible at a glance across tiled windows
  • Task Completion Notification - A tray toast, a sound and a taskbar flash when a session finishes in the background, including when a turn finishes generating. All can be turned off in Settings
  • Status Bar - Repository name, branch, changed file count, terminal status, mode badge, model, current activity, context left, rate limits, and daily usage with a colour-gradient progress bar

Chat View

  • Conversation View - Toggle any window between the raw terminal and a Chat View that renders the session's JSONL transcript as desktop-app-style bubbles, Markdown, code blocks and collapsible tool-call summaries, in matching dark and light palettes. It spans the full window width and the choice is kept per window across restores
  • Tool Call Details - Expand a tool group to see each call: commands with their output, Edit/Write as a coloured diff, Read/Grep/Glob targets with result excerpts, and anything else as input JSON and result. Thinking and the narration between tool calls are shown too. A file a tool worked on opens in the editor window with one click
  • Answering the CLI - Permission prompts, plan approval, menus such as /model, and AskUserQuestion forms appear as interactive cards; the answer is sent to the CLI's selector as key presses
  • Composer - Send prompts from a card at the bottom with image attachments, @ file completion and / command completion (↑↓ / Tab / Enter / Esc). The CLI's suggested next prompt is shown as the placeholder: Tab pulls it in, Enter on an empty box sends it
  • Stop & Queue - A spark shows while Claude is working, next to a Stop button. A prompt sent mid-turn waits as a removable chip and goes out once the turn ends; Stop puts queued prompts back in the box
  • Edit & Rewind - Hover a prompt for Edit and Rewind. Both drive the CLI's /rewind to that prompt; Edit also puts the text back into the box
  • Tasks & Subagents - A strip under the title rebuilds Claude's task checklist from TodoWrite / TaskCreate / TaskUpdate and lists every Agent call. A subagent with its own transcript opens in place of the session, with a bar to go back
  • Find (Ctrl+F) - Highlights every message holding the query; Enter / Shift+Enter or F3 step through the matches
  • Side Pane - A resizable pane next to the conversation with two tabs: Terminal (the same session's live terminal) and Preview (an embedded WebView2 browser with an address bar, back, reload and open-in-browser; a localhost address seen in the terminal output is offered as a one-click suggestion)

Panels, commands and tools

  • Command Palette (Ctrl+Shift+P) - VS Code-style searchable action menu covering every command
  • Slash Commands Panel (Ctrl+/) - Every slash command the CLI understands, listed with a description. Custom commands from .claude/commands/*.md are picked up automatically
  • Extensions Panel - Configured MCP servers, skills and plugins, with enable/disable toggles where the CLI supports it. MCP servers can be added (stdio / http, with a scope), removed and checked through claude mcp. Double-click a skill to run it
  • Memory Panel - Reads Claude Code's auto-memory notes for a project (~/.claude/projects/<project>/memory/), grouped by type, searchable, with the MEMORY.md index, backlinks, and links to notes not written yet
  • Diagram Viewer - Renders Excalidraw diagrams drawn via MCP tool calls, and mermaid/chart code blocks from the output, in a zoomable, pannable window with PNG export/copy. Cached per project so they survive a resume or restart
  • Snippets Panel - Store and send code snippets to the active console (\r in text sends Enter). Drag-and-drop reordering, and it starts pre-filled with common prompts in English or Japanese rather than empty
  • Tokens & Cost Dashboard - A window reading message.usage out of session transcripts: 7/30/90-day range, a "this project only" scope toggle, a daily cost bar chart, and top-50 breakdowns by model, project and session, with CSV export
  • Usage Chart - 14-day chart of messages, tool calls and sessions
  • Automatic Checkpoints - Snapshots the project before each prompt so the work can be rolled back. Git repos use git stash create, which builds a commit object without touching the working tree; other folders get a file snapshot
  • Setup Check - One-click diagnosis of the CLI, Node.js, Git, the config folder and sign-in state, with a copyable fix command for anything missing. Runs itself on first launch and stays quiet when everything is fine
  • Keyboard Shortcut Sheet (F1) - Every shortcut on one screen, grouped by what it acts on
  • Built-in Help - The "?" button opens illustrated English/Japanese help pages in the browser, including a comparison with Claude Desktop, the Claude Code CLI and the VS Code extension
  • Settings Panel - Grouped into categories: language, font family and size, host shell, initial prompt, theme, notifications, checkpoints, live status, commit message language, plan, launch model and effort, AI provider executable and argument templates, and a shortcut to the .claude folder
  • Self-Update - Checks the project's GitHub releases for a newer version, downloads it next to the running executable and verifies it before committing to anything, then steps the old executable aside by renaming it and restarts into the new one - undoing the rename if the swap fails, so there is no state with the application removed but not put back. Only the published single-file build can replace itself; a development build points at the releases page instead

Everything else

  • Dark / Light Theme - Toggle in Settings, carried through every panel, the terminal palette and the MDI chrome
  • Localization - English and Japanese (日本語) throughout

Keyboard Shortcuts

Windows and tabs
Ctrl+N New session
Ctrl+W Close
Ctrl+Tab / Ctrl+Shift+Tab Next / previous tab
Panels
Ctrl+Shift+E Explorer
Ctrl+Shift+G Source control
Ctrl+Shift+P Command palette
Ctrl+/ Slash commands
F1 Keyboard shortcuts
Terminal
Ctrl+F Search
Ctrl+↑ / Ctrl+↓ Jump between prompts
Ctrl+Scroll Zoom font
Ctrl+0 Reset font size
Shift+Enter New line without sending
Ctrl+Enter Send from the expanded input
Esc Stop the task
Ctrl+C Copy, or interrupt when nothing is selected
Ctrl+V Paste, images included
Alt+V Paste a clipboard image
Shift+Tab Cycle the AI mode
Ctrl+S Save the file open in the editor
Chat View
Ctrl+F Find in the conversation
Enter / Shift+Enter, F3 Next / previous match
Tab Take the suggested prompt into the box

Tech Stack

Component Technology
Framework .NET 8.0 / C#
UI Avalonia 12.1.1 + Fluent Theme + Inter fonts
Terminal Custom VT100/ANSI parser over PseudoConsole (ConPTY)
Browser preview Microsoft Edge WebView2
Serialization System.Text.Json
External tools The AI CLI itself, git, gh for pull requests, wsl.exe / ssh.exe for remote sessions

Project Structure

Snipyard/
├── Program.cs                      # Application entry point
├── App.axaml / .cs                 # Application root and theme resources
├── MainWindow.axaml / .cs          # The application window - hosts one AppShell
├── AppShell.axaml / .cs            # The shell: toolbar, activity bar, panels, MDI area, status bar
├── AppShell.Update.cs              # Self-update flow (check, download, stage, restart)
├── AppShell.Schedule.cs            # Scheduled tasks dialog and timer
├── AppShell.Mcp.cs                 # MCP server add/remove/check through `claude mcp`
├── MdiLayoutItem.cs                # Interface every MDI child implements
├── FileTreeNode.cs                 # Explorer tree node model
├── UsageChartWindow.axaml / .cs    # 14-day usage chart dialog
├── Terminal/
│   ├── TerminalControl.cs          # Terminal control: render, select, caret, IME, search, drag & drop
│   ├── TerminalControl.SidePane.cs # Chat View side pane (Terminal / Preview)
│   ├── TerminalBuffer.cs           # Cell grid + scrollback, alternate buffer, bracketed paste
│   ├── TerminalCell.cs             # Cell model (Unicode code point, colours, attributes)
│   ├── VtParser.cs                 # ANSI/VT state machine, SGR 256-colour and truecolour
│   ├── PseudoConsole.cs            # Windows ConPTY P/Invoke wrapper
│   ├── CodeBlockDetector.cs        # Finds mermaid/chart blocks and Excalidraw MCP calls
│   └── DiagramWindow.cs            # Zoomable, pannable diagram viewer
├── Controls/
│   ├── ShellWindow.cs              # A torn-off window holding its own shell
│   ├── DetachedWindow.axaml / .cs  # Window host for a dragged-out pane
│   ├── DockTree.cs                 # Split/leaf tree that says where each MDI child sits
│   ├── DockHost.cs                 # Renders the dock tree with draggable splitters
│   ├── TabDrag.cs                  # Tab drag: reorder, dock, move across windows, tear off
│   ├── SourceControlPanel.cs       # Unified git + GitHub sidebar panel
│   ├── CommitGraphPanel.cs         # Commit graph as an MDI child, with fetch/pull/push
│   ├── CommitGraphView.cs          # Lane-graph drawing control
│   ├── DiffWindow.cs               # Virtualized diff viewer with line-range comments
│   ├── CostDashboardWindow.cs      # Tokens & cost dashboard
│   ├── DocumentViewPanel.cs        # Chat View: transcript bubbles, tool details, cards, find
│   ├── ChatSidePane.cs             # Chat View side pane tabs
│   ├── BrowserPreviewPanel.cs      # WebView2 preview of local web servers
│   ├── ImageAttachmentStrip.cs     # Thumbnail strip for attached images
│   ├── MemoryPanel.cs              # Auto-memory notes panel
│   ├── MemoryNoteView.cs           # One memory note rendered with its links
│   └── MarqueeBar.cs               # Turn-in-progress sweep bar
├── Services/
│   ├── AppSettings.cs              # Configuration persistence
│   ├── Localization.cs             # EN/JP string localization
│   ├── SnippetStore.cs             # Snippet storage
│   ├── WorkspaceService.cs         # Named workspace save/restore
│   ├── CliProvider.cs              # CLI provider / launch-profile data model
│   ├── CliProviderService.cs       # Provider registry, command building, argument quoting
│   ├── CliOneShotRunner.cs         # One throwaway answer from the CLI, with no session state
│   ├── ShellHost.cs                # Which shell (cmd.exe / PowerShell) a session launches inside
│   ├── ProcessRunner.cs            # Shared process-launch plumbing
│   ├── ProcessTree.cs              # Walks child processes to find a window's CLI process
│   ├── SessionService.cs           # Session list and sessions-index management
│   ├── SessionMessageReader.cs     # JSONL transcript parser
│   ├── ChatTaskTracker.cs          # Task checklist and subagents rebuilt from the transcript
│   ├── ClaudeProjectPaths.cs       # Maps a project folder to its ~/.claude/projects folder
│   ├── ExecutionTarget.cs          # Local / WSL / SSH launch targets
│   ├── ScheduleService.cs          # Scheduled task storage
│   ├── McpService.cs               # `claude mcp` wrapper
│   ├── MemoryStore.cs              # Auto-memory note reader
│   ├── ModelCatalog.cs             # Newest model versions learned from transcripts
│   ├── SessionCostMonitor.cs       # Live per-session cost and context tracking
│   ├── RunningSessionService.cs    # Detects a session already held by another process
│   ├── SubagentMonitor.cs          # In-flight subagent tracking
│   ├── AgentViewMonitor.cs         # Background agent sessions, read from ~/.claude/jobs
│   ├── HandoffBuilder.cs           # Session hand-off brief builder
│   ├── WorktreeService.cs          # Per-session git worktree isolation
│   ├── CheckpointService.cs        # Pre-prompt snapshots (stash object / file copy)
│   ├── UsageTracker.cs             # Today's usage, aggregated from transcripts
│   ├── RateLimitService.cs         # 5h/7d plan rate-limit windows
│   ├── CostAnalytics.cs            # Cost/token aggregation for the dashboard
│   ├── TerminalInsight.cs          # Mode/activity inference and error diagnosis
│   ├── CommandExplainer.cs         # Plain-language permission-prompt explanations
│   ├── SetupDoctor.cs              # Environment diagnostics (Setup Check)
│   ├── SlashCommandCatalog.cs      # Slash command listing
│   ├── ExtensionCatalog.cs         # MCP server / skill / plugin listing
│   ├── ProjectFileIndex.cs         # @-mention file path index
│   ├── TextFileEditor.cs           # Explorer's in-app text file read/write
│   ├── RecycleBin.cs               # Safe delete via the Windows Recycle Bin
│   ├── ShellIconProvider.cs        # Windows Explorer icons, cached, as Avalonia images
│   ├── MarkdownParser.cs           # Lightweight Markdown renderer
│   ├── DiagramCache.cs             # Persists Excalidraw diagrams per project
│   ├── NotificationService.cs      # Tray notifications and sound
│   ├── UpdateService.cs            # GitHub release check, download and staging
│   ├── CommitMessageService.cs     # AI-drafted commit messages (EN/JP)
│   ├── SecretScanService.cs        # Per-file secret scan of the staged diff
│   ├── StagingPolicy.cs            # Flags files that probably should not be committed
│   ├── GitIgnoreService.cs         # Per-clone ignore list for those warnings
│   ├── GitHubCli.cs                # `gh` wrapper for pull requests, CI status and repo creation
│   ├── GitErrorHints.cs            # Localized explanations of common git failures
│   ├── UnifiedDiffParser.cs        # Unified diff parser
│   └── GitCli.cs / GitWriteService.cs / GitChangeService.cs / GitLogService.cs / GitPath.cs / CommitGraphLayout.cs
│                                   # Git process wrapper, write ops, status/log readers, path decoding, graph layout
├── Help/                           # Embedded EN/JP help pages and screenshots
├── icon.ico / icon.png             # Application icon
├── app.manifest                    # Application manifest
├── publish.bat                     # One-click self-contained release build
└── build.number                    # Auto-incrementing build number

Requirements

  • Windows 10 or later
  • Node.js - the supported CLIs are npm packages
  • At least one AI CLI: Claude Code (default), Codex CLI, GitHub Copilot CLI, Antigravity CLI or Grok CLI
  • git (optional) - for the source control panel, commit graph and worktree isolation
  • gh (optional) - for pull requests, CI status and repository creation
  • Microsoft Edge WebView2 Runtime (optional, preinstalled on Windows 11) - for the Chat View browser preview
  • WSL or OpenSSH client (optional) - for WSL / SSH sessions

Build

# Build (auto-increments build.number)
dotnet build

# Run
dotnet run

# Publish single-file executable (or just run publish.bat)
dotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true -p:DebugType=none -o ./publish-single

Data Locations

Data Path
Settings %APPDATA%\Snipyard\appsettings.json
Snippets %APPDATA%\Snipyard\snippets.json
Workspaces %APPDATA%\Snipyard\workspace.json
CLI providers %APPDATA%\Snipyard\providers.json
Light profile settings %APPDATA%\Snipyard\light-settings.json
Slash command overrides %APPDATA%\Snipyard\slashcommands.json (optional)
Scheduled tasks %APPDATA%\Snipyard\schedules.json
Help pages %APPDATA%\Snipyard\Help\
Checkpoints %APPDATA%\Snipyard\checkpoints\
Session worktrees %LOCALAPPDATA%\Snipyard\worktrees\
Rate limits (from the status line) %LOCALAPPDATA%\Snipyard\rate-limits.json
Session index (read/write) ~/.claude/projects/*/sessions-index.json
Session transcripts (read-only) ~/.claude/projects/*/*.jsonl
Cached diagrams ~/.claude/projects/*/diagrams/
Auto-memory notes (read-only) ~/.claude/projects/*/memory/
Background agents (read-only) ~/.claude/jobs/
CLI settings and plugins (read-only) ~/.claude/settings.json, ~/.claude.json, ~/.claude/plugins/installed_plugins.json
Project MCP servers and skills (read-only) <project>/.mcp.json, <project>/.claude/settings.local.json, <project>/.claude/commands/*.md

Upgrading from Claucraft: the first start copies %APPDATA%\Claucraft to %APPDATA%\Snipyard, so settings, snippets, providers, schedules and checkpoints carry over. The old folder is left in place and can be deleted once you no longer need to go back. Worktrees made before the rename stay under %LOCALAPPDATA%\Claucraft\worktrees\ and are still recognised. An install updated in place keeps its Claucraft.exe file name; rename it to Snipyard.exe whenever convenient.

Disclaimer

Snipyard is an unofficial, independent project. It is not affiliated with, endorsed by, or sponsored by Anthropic. Claude and Claude Code are trademarks of Anthropic, PBC; other product names mentioned here are trademarks of their respective owners.

Snipyard does not bundle Claude Code. It runs the copy you installed, signed in with your own account.

License

MIT


Snipyard (日本語)

旧名 Claucraft。

Avalonia UI で構築された、AI コヌディング CLI 甚の Windows MDIマルチドキュメントむンタヌフェヌスタヌミナルアプリケヌションです。

既定は Claude Code で、Codex CLI・GitHub Copilot CLI・Antigravity CLI・Grok CLI をセッションごずに遞択できたす。耇数のセッションを1぀のりィンドりに䞊べおあるいは別りィンドりに切り離しお実行でき、各セッションは生のタヌミナルずデスクトップアプリ颚のチャットビュヌを切り替えお衚瀺できたす。プロゞェクト゚クスプロヌラヌ、git / GitHub パネル、スニペット、コストず䜿甚量の衚瀺、ダヌク/ラむトテヌマを備えおいたす。

機胜

りィンドりずレむアりト

  • りェルカムペヌゞ - VS Code 颚の起動画面。新芏プロゞェクト、前回のプロゞェクト、最近䜿甚したプロゞェクト䞀芧を衚瀺。前回/最近のプロゞェクトは -c で自動継続
  • MDI タヌミナルりィンドり - 耇数セッションを子りィンドりで衚瀺。タむル / 暪䞊べ / 瞊䞊べ / 最倧衚瀺に察応
  • ドッキングレむアりト - りィンドり配眮は座暙ではなくドックツリヌで管理。ペむンを氎平・垂盎に分割でき、境界はドラッグでリサむズ可胜
  • タブドラッグ - タブを掎んでストリップ内で䞊べ替え、別ペむンぞドッキング、別りィンドりぞ移動、どこにも重ならない堎所ぞ萜ずせば独立した OS りィンドりずしお切り離し。移動䞭もセッションは動き続ける
  • りィンドりパネル - 開いおいる党りィンドりを状態ドットず䌚話芁玄タヌミナルタむトルより優先付きで䞀芧衚瀺。ホバヌでタヌミナル出力プレビュヌ。クリックで切替、×で閉じる
  • Agent View - バックグラりンドセッションclaude agentsを、起動元のりィンドりの䞋に状態・埅機理由・プロセスの生死ずずもに衚瀺。CLI を実行せず ~/.claude/jobs から盎接読むため、700ms ごずのパネル曎新でもコストがかからない
  • サブ゚ヌゞェントモニタヌ - 同じパネルに実行䞭のサブ゚ヌゞェントラベル・皮類・モデル・深さを衚瀺
  • タブ管理 - 右クリックメニュヌ閉じる / 他を閉じる / 右偎を閉じる / 耇補 / ゚クスポヌト。ダブルクリックで名前倉曎。最初のナヌザヌ入力たたはセッション芁玄から自動呜名
  • 名前付きワヌクスペヌス - レむアりトを任意の数だけ保存・埩元。埩元時は -r で同じセッションを再開するため、新芏セッションではなく䌚話が戻る

セッションず AI CLI

  • CLI プロバむダヌ察応 - Claude Code / Codex CLI / GitHub Copilot CLI / Antigravity CLI / Grok CLI。それぞれ独自の実行ファむルclaude / codex / copilot / agy / grok・コマンドラむン圢匏・ワンショット実行・蚭定フォルダ・起動プロファむルを持぀。ツヌルバヌからセッションごずに切替でき、実行ファむルず新芏/継続/再開の匕数テンプレヌトは蚭定パネルで線集可胜
  • ホストシェル - CLI を cmd.exe ず PowerShell のどちらで起動するかを遞択。匕数のクォヌトは遞んだシェルに远埓し、PowerShell が未むンストヌルの堎合はタブが死なないよう cmd.exe にフォヌルバック
  • セッション管理 - 過去のセッションを AI 生成タむトルsessions-index.json よりずタむムスタンプ付きで再開。䞀芧は怜玢可胜で、䞍芁なセッションは削陀できる
  • セッションむンデックス自動䜜成 - プロゞェクトごずに sessions-index.json を自動䜜成・曎新し、CLI が AI 生成の䌚話芁玄を远加できるようにする
  • 倚重起動ガヌド - 1぀のセッションは同時に1か所でしか動かないため、他プロセスが保持䞭のセッションの起動をプロンプト衚瀺前にブロック
  • プロゞェクトコンテキスト切替 - MDI りィンドりの切替に合わせお、プロゞェクトフォルダ・゚クスプロヌラヌ・セッション䞀芧・git 状態を自動切替
  • 実行環境WSL / SSH - 新芏セッションのメニュヌに、むンストヌル枈みの WSL ディストリビュヌション、最近䜿った SSH ホストず ~/.ssh/config のホスト、host:/path の入力欄を衚瀺。CLI は wsl.exe / ssh.exe 経由で起動し、匕数はリモヌト偎向けに゚スケヌプする。WSL のりィンドりは \\wsl.localhost 経由で蚘録を読むためチャットビュヌも䜿える。SSH のりィンドりはタヌミナル衚瀺のみ。リモヌトのりィンドりはワヌクスペヌスに保存しない
  • スケゞュヌルタスク - 指定したプロゞェクトで新芏セッションを開いおプロンプトを送信。1回・毎日・N分ごずを遞べ、アプリの起動䞭に実行する。30分以䞊過ぎた実行枠は埌から远いかけずスキップ
  • リモヌト操䜜 - セッションタブのメニュヌから /remote-control を送り、別の端末からセッションを続けられる
  • 起動プロファむル - ツヌルバヌで Light / Standard / Deep を遞択。新芏・-c 継続・-r 再開のすべおの起動経路に適甚されるため、再開時にコンテキスト䞊限が倖れお膚らむこずがない。Light は独自の --settings ファむルで MCP サヌバヌ・ツヌル説明・自動メモリをプロンプト冒頭から削枛、Deep は --model opus --effort high に切替
  • 起動時のモデルず effort - 䌚話の途䞭で切り替えおプロンプトキャッシュを捚おる代わりに、セッション開始時にモデルず effort を固定できるClaude のみ。遞択は新芏りィンドり・埩元・起動をたたいで匕き継がれる
  • Git Worktree 分離 - セッションごずに専甚の git worktree チェックアりトSnipyard 管理フォルダ配䞋、snipyard/ 接頭蟞のブランチを持たせ、同䞀リポゞトリの耇数りィンドりが互いのファむルを壊さず䞊行䜜業可胜に
  • セッション匕き継ぎ - コンテキストが少なくなったら割合ではなく絶察トヌクン数が閟倀なので 1M コンテキストのモデルでも発火する、蚘録からロヌカルで抜出したブリヌフを持っお新芏セッションぞ匕き継ぐ。/compact ず違いトヌクン費甚はかからず、ブリヌフは新芏セッションの入力欄に眮かれるので送信前に線集できる
  • 再開コストトヌクンバッゞ - セッション遞択画面に盎近のコンテキストサむズをバッゞ衚瀺し、ツヌルチップで再開コストを芋積もり。右クリックの「ブリヌフから新芏開始」で、元のセッションを開かずに匕き継げる

タヌミナル

  • VT100/ANSI タヌミナル - Windows ConPTY 䞊の自前パヌサヌ。SGR の 256 色・トゥルヌカラヌ、代替バッファ、スクロヌル領域、党角文字、Unicode コヌドポむントずれロ幅結合文字に察応。スクロヌルバックは 10,000 行
  • キャレットず行線集 - 点滅する挿入バヌ型キャレット、クリックでの移動、Shift+矢印での遞択、CLI 入力行の Undo/Redo
  • タヌミナル怜玢 (Ctrl+F) - 出力ずスクロヌルバック履歎の党文怜玢。マッチハむラむト、ナビゲヌション、正芏衚珟モヌド、倧文字小文字区別トグル
  • プロンプトナビゲヌション (Ctrl+↑/↓) - 質問単䜍で移動し、珟圚䜍眮を衚瀺Q 2/5。セッション䞭の入力䜍眮を远跡し、過去の䌚話はバッファ内のセパレヌタを怜出しお移動
  • フォントズヌム (Ctrl+スクロヌル) - ホむヌルでフォントサむズを倉曎。Ctrl+0 でリセット
  • 拡匵入力パネル - ドラッグでサむズ倉曎できる耇数行入力。Enter で改行、Ctrl+Enter で送信、Escape で瞮小
  • @メンション補完 - @ を入力するずプロゞェクトのファむルむンデックスからパスを補完。入力行からファむルを遞ぶこずもできる
  • Shift+Enter 改行 - 送信せずに改行を挿入
  • ファむルドラッグドロップ - タヌミナルにファむルをドロップしおパスを入力。゚クスプロヌラヌパネルからのドラッグにも察応
  • 画像の添付 - クリップボヌドの画像Ctrl+V たたは Alt+Vや、貌り付け・ドロップした画像ファむルは、テキストずしお挿入せず入力欄の䞊のサムネむル列に远加。クリックで拡倧衚瀺、×で削陀でき、送信時にプロンプトず䞀緒に枡される
  • ブラケットペヌストモヌド - モダンシェル向けにペヌストテキストをブラケットシヌケンスでラップ
  • タヌミナル出力の゚クスポヌト - タブの右クリックメニュヌから出力をテキストファむルに保存

プロゞェクトずファむル

  • プロゞェクト゚クスプロヌラヌ - 構文察応アむコンず色分け40皮類以䞊の拡匵子、Windows のシェルアむコン、ファむルシステム倉曎時の自動リフレッシュ、遞択時のプレビュヌ衚瀺。Ctrl/Shift+クリックで耇数遞択でき、たずめおドラッグするず党パスを @ 参照ずしおタヌミナルぞ入力
  • アプリ内テキスト゚ディタ - ゚クスプロヌラヌからテキストファむルを盎接線集Ctrl+S で保存。元の゚ンコヌディング・改行コヌド・BOM を保持。バむナリ・倧きすぎる・非 UTF-8 のファむルは壊さないよう読み取り専甚のたた
  • プログラムから開く - ファむルを右クリックしお Windows の「プログラムから開く」に枡す
  • 安党な削陀 - ゚クスプロヌラヌからの削陀は完党削陀ではなく Windows のごみ箱ぞ

゜ヌスコントロヌル

  • ゜ヌスコントロヌルパネル (Ctrl+Shift+G) - git + GitHub 統合サむドパネル。取埗 / 取蟌rebase/ 送信ず5分間隔の静かなバックグラりンド自動取埗、ブランチの切替・䜜成・削陀・マヌゞ、ファむル単䜍たたは䞀括のステヌゞ、コンフリクトや䞭断したリベヌス/マヌゞのバナヌ衚瀺察象ファむル名入りの日英プロンプトを䜜成する「AI に聞く」ボタン付き。匷制プッシュ・reset --hard・branch -D は蚭蚈䞊存圚せず、垞に非砎壊的
  • AI コミットメッセヌゞ - ステヌゞ枈み差分から日本語たたは英語のコミットメッセヌゞを生成。珟圚のセッションに参加せず、アクティブな CLI のワンショットモヌドでロヌカルに生成
  • シヌクレットスキャン - コミット前にステヌゞ枈み差分をファむル単䜍で走査し、認蚌情報や鍵を怜出。該圓ファむルを黙っおコミットせず明瀺的に譊告
  • 危険ファむルの譊告 - コミットする぀もりがなかったず思われるファむル認蚌情報ファむル、ビルド生成物などをステヌゞングポリシヌが怜出。刀断枈みのものはクロヌンごずの無芖リストで以埌衚瀺されなくなる
  • GitHub プルリク゚スト - gh を介しお、パネル内でオヌプンな PR の䞀芧衚瀺・承認・䜜成・ブラりザで開くが可胜。gh が未むンストヌル/未認蚌、たたはリモヌトが GitHub でない堎合は自動的に非衚瀺
  • CI 状態ずレビュヌコメント - オヌプンな PR ごずにチェック結果をたずめた色付きドットを衚瀺パネル衚瀺䞭は1分ごずに曎新。展開するず倱敗したチェックず、レビュヌ・䌚話・行コメントを䞀芧でき、AI に修正を䟝頌するボタンが付く
  • リポゞトリ䜜成 - リモヌトのないリポゞトリで送信するず、オヌナヌ / 名前 / 説明 / 非公開を指定するダむアログを開き、gh repo create で GitHub リポゞトリを䜜成
  • git ゚ラヌのヒント - よくある git の倱敗には、git の出力の䞊に日英の説明を衚瀺。別の worktree でチェックアりト䞭のブランチはブランチメニュヌでグレヌ衚瀺し、理由を瀺す
  • コミットグラフ差分ビュヌア - コミット履歎をレヌングラフで衚瀺MDI 子りィンドり or 専甚りィンドり。取埗/取蟌/送信ボタンを内蔵。線はブランチごずに色分けし、タグ䜜成も可胜し、仮想化された差分ビュヌアを提䟛。差分範囲を遞択、たたは倉曎ファむルを右クリックしお @path:12-20 <コメント> をタヌミナルぞ盎接送信

AI の状態を知る

  • モヌドバッゞ - セッションのモヌド手動 / 自動承認 / プラン / 暩限スキップを、CLI が䜿う色そのたたでステヌタスバヌに衚瀺。クリックで切替。CLI の仕様倉曎でモヌド名を読めなくなった堎合は「Switch Mode」衚瀺に戻り、Shift+Tab の送信は継続
  • モデルず effort - 䜿甚䞭のモデルず掚論 effort をステヌタスバヌに衚瀺し、そこから切替可胜。CLI 内郚で行われたモデル切替にも远埓。モデル䞀芧は盎近の蚘録から各系統の最新バヌゞョンを孊習するため、新しいモデルが出おも叀いたたにならない
  • 実行䞭むンゞケヌタ - AI が黙っおいる間に䜕をしおいるかファむル読み蟌み・コマンド実行・怜玢を経過時間付きで衚瀺。タヌン実行䞭は入力行の䞋にスむヌプバヌを衚瀺
  • コンテキスト残量メヌタヌ - CLI の出力から残量を読み取っおメヌタヌ衚瀺。少なくなったらワンクリックで /compact
  • キャッシュ期限の譊告 - アむドル䞭のセッションがプロンプトキャッシュの期限に近づくず「今すぐ compact」バナヌを衚瀺。䌚話途䞭でモデルや effort を切り替えるずきは、残す䟡倀のあるコンテキストがあれば先に compact する
  • 限界コスト衚瀺 - 盎前のタヌンにかかった額ず、次のタヌンが䌚話を読み盎すだけでかかる額を衚瀺。高くなったセッションが自分から知らせる
  • 䜿甚量の人間語衚瀺 - 単なるメッセヌゞ数ではなく「残り玄 840 回・リセットたで 5 時間」ず衚瀺。基準は蚭定で遞んだプランPro / Max 5x / Max 20xで、集蚈元はセッション蚘録そのもの
  • レヌト制限衚瀺 - プランの5時間枠・7日枠それぞれの䜿甚率ずリセットたでの時間を衚瀺。Snipyard から起動した Claude セッションに status line を远加し、Claude Code 自身が報告する rate_limits を保存しお衚瀺したすPro/Max、最初の応答以降。ご自身の status line はそのたた衚瀺されたす。蚭定 > ラむブステヌタスでオフにできたす衚瀺も消えたす。オンの間、Claude Code はフッタヌのキヌ操䜜ヒントを衚瀺したせん。ご自身のスクリプトが䞀時フォルダに残す claude_usage_cache.json も予備ずしお読みたすSnipyard 自身が Claude のサむンむン情報を䜿うこずはありたせん
  • 暩限プロンプトの解説 - 承認オヌバヌレむに、そのコマンドが䜕をするかの平易な説明ず危険床読み取りのみ / ファむルを倉曎 / 削陀・ネットワヌクを衚瀺
  • ゚ラヌ蚺断バナヌ - 既知の倱敗サむンアりト・レヌト制限・䜿甚量䞊限・ネットワヌク断・CLI が叀いを怜出し、察凊をワンクリックで実行できるバナヌを衚瀺。お知らせ系のバナヌは自動で消える
  • 停止ボタン - 䜜業䞭のりィンドりの入力行に停止ボタンを衚瀺。Escape で䞭断できるこずを知らなくおも止められる
  • タヌン終了時の枠点滅 - AI が応答を終えお入力埅ちに戻るず、アクティブりィンドりの青い枠が2回点滅。タむル衚瀺でもどのセッションが終わったか䞀目で分かる
  • タスク完了通知 - バックグラりンドでセッションが終了したずき、およびタヌンの生成が完了したずきに、トヌスト通知・効果音・タスクバヌ点滅で知らせる。いずれも蚭定でオフにできる
  • ステヌタスバヌ - リポゞトリ名、ブランチ、倉曎ファむル数、タヌミナル状態、モヌドバッゞ、モデル、実行䞭の䜜業、コンテキスト残量、レヌト制限、日次䜿甚量緑→黄→赀のプログレスバヌを衚瀺

チャットビュヌ

  • 䌚話ビュヌ - 各りィンドりを生のタヌミナルずチャットビュヌで切替。チャットビュヌはセッションの JSONL 蚘録を、デスクトップアプリ颚の吹き出し・Markdown・コヌドブロック・折りたたみ匏のツヌル呌び出し芁玄で衚瀺し、ダヌク/ラむトの配色も合わせる。りィンドり幅いっぱいに広がり、衚瀺の遞択はりィンドりごずに埩元埌も保持
  • ツヌル呌び出しの詳现 - ツヌルのグルヌプを展開するず各呌び出しを衚瀺。コマンドずその出力、Edit/Write は色分けした差分、Read/Grep/Glob は察象ず結果の抜粋、それ以倖は入力 JSON ず結果。思考ずツヌル呌び出しの間の説明文も衚瀺。ツヌルが扱ったファむルはワンクリックで゚ディタりィンドりに開く
  • CLI ぞの応答 - 暩限プロンプト、プランの承認、/model などのメニュヌ、AskUserQuestion のフォヌムを操䜜できるカヌドで衚瀺し、回答は CLI の遞択肢ぞキヌ操䜜ずしお送る
  • 入力欄 - 䞋郚のカヌドからプロンプトを送信。画像添付、@ によるファむル補完、/ によるコマンド補完↑↓ / Tab / Enter / Escに察応。CLI が提案する次のプロンプトをプレヌスホルダヌに衚瀺し、Tab で取り蟌み、空欄で Enter を抌すずそのたた送信
  • 停止ず送信キュヌ - Claude の䜜業䞭はスパヌクず停止ボタンを衚瀺。䜜業䞭に送ったプロンプトは取り消し可胜なチップずしお埅機し、タヌン終了埌に送信。停止するずキュヌのプロンプトは入力欄に戻る
  • 線集ず巻き戻し - プロンプトにホバヌするず「線集」「巻き戻し」を衚瀺。どちらも CLI の /rewind でそのプロンプトたで戻り、線集では元の文を入力欄に戻す
  • タスクずサブ゚ヌゞェント - タむトル䞋の垯に、TodoWrite / TaskCreate / TaskUpdate から組み立おた Claude のタスク䞀芧ず、すべおの Agent 呌び出しを衚瀺。蚘録のあるサブ゚ヌゞェントはセッションの代わりに開き、戻るバヌで元に戻れる
  • 䌚話内怜玢 (Ctrl+F) - 怜玢語を含むメッセヌゞを匷調衚瀺し、Enter / Shift+Enter たたは F3 で移動
  • サむドペむン - 䌚話の暪にサむズ倉曎できるペむンを開く。タブは Terminal同じセッションのラむブタヌミナルず Previewアドレスバヌ・戻る・再読み蟌み・ブラりザで開くを備えた WebView2 ブラりザ。タヌミナル出力に出た localhost のアドレスをワンクリックで開ける候補ずしお衚瀺の2぀

パネル・コマンド・ツヌル

  • コマンドパレット (Ctrl+Shift+P) - VS Code 颚の怜玢可胜なアクションメニュヌ。党コマンドを網矅
  • スラッシュコマンドパネル (Ctrl+/) - CLI が解釈するスラッシュコマンドを説明付きで䞀芧衚瀺。.claude/commands/*.md のカスタムコマンドも自動取り蟌み
  • 拡匵機胜パネル - 蚭定枈みの MCP サヌバヌ・スキル・プラグむンを䞀芧衚瀺。CLI が察応しおいれば有効/無効を切替可胜。MCP サヌバヌは claude mcp を䜿っお远加stdio / http、スコヌプ指定・削陀・状態確認ができる。スキルはダブルクリックで実行
  • メモリパネル - Claude Code がプロゞェクトに぀いお曞き残した自動メモリのノヌト~/.claude/projects/<project>/memory/を皮類別に衚瀺。怜玢、MEMORY.md の目次、被リンク、未䜜成のリンクの䞀芧に察応
  • ダむアグラムビュヌア - MCP ツヌル呌び出しで描画された Excalidraw 図ず、出力䞭の mermaid / chart コヌドブロックを、ズヌム・パン可胜なりィンドりで衚瀺。PNG ゚クスポヌト/コピヌに察応し、プロゞェクトごずにキャッシュされるため再開・再起動埌も残る
  • スニペットパネル - コヌドスニペットを保存しおアクティブなコン゜ヌルぞ送信テキスト䞭の \r で Enter を送信。ドラッグドロップで䞊べ替え可胜。初期状態でよく䜿うプロンプト日本語英語が入っおいる
  • トヌクンコストダッシュボヌド - セッション蚘録の message.usage を集蚈する専甚りィンドり。7/30/90日の期間切替、「このプロゞェクトのみ」衚瀺、日別コストの棒グラフ、モデル別・プロゞェクト別・セッション別の䞊䜍50件内蚳、CSV ゚クスポヌト
  • 䜿甚量チャヌト - 過去14日のメッセヌゞ数・ツヌル呌び出し数・セッション数をグラフ衚瀺
  • 自動チェックポむント - プロンプト送信前にプロゞェクトのスナップショットを取り、巻き戻し可胜にする。Git リポゞトリでは䜜業ツリヌに觊れない git stash create を䜿い、Git 管理倖のフォルダはファむルコピヌで保存
  • セットアップ蚺断 - CLI・Node.js・Git・蚭定フォルダ・サむンむン状態をワンクリックで蚺断し、足りないものにはコピヌできる察凊コマンドを衚瀺。初回起動時に自動実行され、問題がなければ䜕も出さない
  • ショヌトカット䞀芧 (F1) - 党ショヌトカットを察象ごずにグルヌプ分けしお1画面で衚瀺
  • ヘルプ - 「?」ボタンで、スクリヌンショット付きの日英ヘルプペヌゞをブラりザで開く。Claude Desktop・Claude Code CLI・VS Code 拡匵ずの比范も収録
  • 蚭定パネル - カテゎリごずにグルヌプ分け。蚀語、フォントずサむズ、ホストシェル、初期プロンプト、テヌマ、通知、チェックポむント、ラむブステヌタス、コミットメッセヌゞ蚀語、プラン、起動時のモデルず effort、AI プロバむダヌの実行ファむルず匕数テンプレヌト、.claude フォルダぞのショヌトカット
  • 自動アップデヌト - GitHub リリヌスを確認し、新しいバヌゞョンがあれば実行䞭の exe の隣にダりンロヌドしお怜蚌したうえで適甚。叀い exe はリネヌムで退避しおから新しい exe を配眮し、倱敗した堎合はリネヌムを戻すため「アプリが消えたたた」の状態にはならない。自己眮換できるのは発行枈みの単䞀ファむルビルドのみで、開発ビルドはリリヌスペヌゞを案内する

その他

  • ダヌク/ラむトテヌマ - 蚭定パネルから切替。党パネル・タヌミナルのカラヌパレット・MDI の枠たで察応
  • 倚蚀語察応 - 英語・日本語

キヌボヌドショヌトカット

りィンドりずタブ
Ctrl+N 新芏セッション
Ctrl+W 閉じる
Ctrl+Tab / Ctrl+Shift+Tab 次 / 前のタブ
パネル
Ctrl+Shift+E ゚クスプロヌラヌ
Ctrl+Shift+G ゜ヌスコントロヌル
Ctrl+Shift+P コマンドパレット
Ctrl+/ スラッシュコマンド
F1 ショヌトカット䞀芧
タヌミナル
Ctrl+F 怜玢
Ctrl+↑ / Ctrl+↓ プロンプト間を移動
Ctrl+スクロヌル フォントズヌム
Ctrl+0 フォントサむズをリセット
Shift+Enter 送信せずに改行
Ctrl+Enter 拡匵入力から送信
Esc タスクを停止
Ctrl+C コピヌ遞択がなければ䞭断
Ctrl+V 貌り付け画像も可
Alt+V クリップボヌドの画像を貌り付け
Shift+Tab AI モヌドを切替
Ctrl+S ゚ディタで開いおいるファむルを保存
チャットビュヌ
Ctrl+F 䌚話内を怜玢
Enter / Shift+Enter、F3 次 / 前の䞀臎ぞ移動
Tab 提案されたプロンプトを入力欄に取り蟌む

技術スタック

コンポヌネント 技術
フレヌムワヌク .NET 8.0 / C#
UI Avalonia 12.1.1 + Fluent テヌマ + Inter フォント
タヌミナル PseudoConsole (ConPTY) 䞊の自前 VT100/ANSI パヌサヌ
ブラりザプレビュヌ Microsoft Edge WebView2
シリアラむズ System.Text.Json
倖郚ツヌル AI CLI 本䜓、git、プルリク゚スト甚の gh、リモヌトセッション甚の wsl.exe / ssh.exe

プロゞェクト構成

Snipyard/
├── Program.cs                      # アプリケヌションの゚ントリポむント
├── App.axaml / .cs                 # アプリケヌションルヌトずテヌマリ゜ヌス
├── MainWindow.axaml / .cs          # アプリ本䜓のりィンドり。䞭身は AppShell ひず぀
├── AppShell.axaml / .cs            # シェル本䜓ツヌルバヌ、アクティビティバヌ、パネル、MDI 領域、ステヌタスバヌ
├── AppShell.Update.cs              # 自動アップデヌトの䞀連の流れ確認・DL・配眮・再起動
├── AppShell.Schedule.cs            # スケゞュヌルタスクのダむアログずタむマヌ
├── AppShell.Mcp.cs                 # `claude mcp` による MCP サヌバヌの远加・削陀・確認
├── MdiLayoutItem.cs                # MDI 子りィンドりが実装するむンタヌフェヌス
├── FileTreeNode.cs                 # ゚クスプロヌラヌのツリヌノヌドモデル
├── UsageChartWindow.axaml / .cs    # 14日間の䜿甚量チャヌトダむアログ
├── Terminal/
│   ├── TerminalControl.cs          # タヌミナルコントロヌル描画・遞択・キャレット・IME・怜玢・D&D
│   ├── TerminalControl.SidePane.cs # チャットビュヌのサむドペむンTerminal / Preview
│   ├── TerminalBuffer.cs           # セルグリッドずスクロヌルバック、代替バッファ、ブラケットペヌスト
│   ├── TerminalCell.cs             # セルモデルUnicode コヌドポむント、色、属性
│   ├── VtParser.cs                 # ANSI/VT 状態機械。SGR の 256 色・トゥルヌカラヌ察応
│   ├── PseudoConsole.cs            # Windows ConPTY の P/Invoke ラッパヌ
│   ├── CodeBlockDetector.cs        # mermaid/chart ブロックず Excalidraw MCP 呌び出しの怜出
│   └── DiagramWindow.cs            # ズヌム・パン可胜なダむアグラムビュヌア
├── Controls/
│   ├── ShellWindow.cs              # 切り離された、独自のシェルを持぀りィンドり
│   ├── DetachedWindow.axaml / .cs  # ドラッグで切り離されたペむンのりィンドりホスト
│   ├── DockTree.cs                 # 各 MDI 子りィンドりの䜍眮を衚す分割/葉ノヌドのツリヌ
│   ├── DockHost.cs                 # ドックツリヌをドラッグ可胜なスプリッタ付きで描画
│   ├── TabDrag.cs                  # タブドラッグ䞊べ替え・ドッキング・りィンドり間移動・切り離し
│   ├── SourceControlPanel.cs       # git + GitHub 統合サむドパネル
│   ├── CommitGraphPanel.cs         # MDI 子りィンドりずしおのコミットグラフ取埗/取蟌/送信付き
│   ├── CommitGraphView.cs          # レヌングラフの描画コントロヌル
│   ├── DiffWindow.cs               # 仮想化された差分ビュヌア行範囲コメント察応
│   ├── CostDashboardWindow.cs      # トヌクンコストダッシュボヌド
│   ├── DocumentViewPanel.cs        # チャットビュヌ吹き出し・ツヌル詳现・カヌド・怜玢
│   ├── ChatSidePane.cs             # チャットビュヌのサむドペむンのタブ
│   ├── BrowserPreviewPanel.cs      # ロヌカル Web サヌバヌの WebView2 プレビュヌ
│   ├── ImageAttachmentStrip.cs     # 添付画像のサムネむル列
│   ├── MemoryPanel.cs              # 自動メモリのノヌトパネル
│   ├── MemoryNoteView.cs           # リンク付きでノヌト1件を衚瀺
│   └── MarqueeBar.cs               # タヌン実行䞭のスむヌプバヌ
├── Services/
│   ├── AppSettings.cs              # 蚭定の氞続化
│   ├── Localization.cs             # EN/JP 文字列のロヌカラむズ
│   ├── SnippetStore.cs             # スニペットの保存
│   ├── WorkspaceService.cs         # 名前付きワヌクスペヌスの保存・埩元
│   ├── CliProvider.cs              # CLI プロバむダヌ起動プロファむルのデヌタモデル
│   ├── CliProviderService.cs       # プロバむダヌ登録、コマンド構築、匕数クォヌト
│   ├── CliOneShotRunner.cs         # セッション状態を持たない CLI 単発実行
│   ├── ShellHost.cs                # セッションを起動するシェルcmd.exe / PowerShellの決定
│   ├── ProcessRunner.cs            # プロセス起動の共通凊理
│   ├── ProcessTree.cs              # 子プロセスを蟿っおりィンドりの CLI プロセスを特定
│   ├── SessionService.cs           # セッション䞀芧ず sessions-index の管理
│   ├── SessionMessageReader.cs     # JSONL 蚘録のパヌサヌ
│   ├── ChatTaskTracker.cs          # 蚘録から組み立おるタスク䞀芧ずサブ゚ヌゞェント
│   ├── ClaudeProjectPaths.cs       # プロゞェクトフォルダず ~/.claude/projects のフォルダの察応付け
│   ├── ExecutionTarget.cs          # ロヌカル / WSL / SSH の起動先
│   ├── ScheduleService.cs          # スケゞュヌルタスクの保存
│   ├── McpService.cs               # `claude mcp` のラッパヌ
│   ├── MemoryStore.cs              # 自動メモリのノヌトの読み取り
│   ├── ModelCatalog.cs             # 蚘録から孊習する最新のモデルバヌゞョン
│   ├── SessionCostMonitor.cs       # セッションごずのコスト・コンテキストのラむブ远跡
│   ├── RunningSessionService.cs    # 他プロセスが保持䞭のセッションの怜出
│   ├── SubagentMonitor.cs          # 実行䞭サブ゚ヌゞェントの远跡
│   ├── AgentViewMonitor.cs         # ~/.claude/jobs から読むバックグラりンドセッション
│   ├── HandoffBuilder.cs           # セッション匕き継ぎブリヌフの生成
│   ├── WorktreeService.cs          # セッションごずの git worktree 分離
│   ├── CheckpointService.cs        # プロンプト前スナップショットstash オブゞェクトファむルコピヌ
│   ├── UsageTracker.cs             # セッション蚘録から集蚈する圓日の䜿甚量
│   ├── RateLimitService.cs         # プランの5時間枠・7日枠
│   ├── CostAnalytics.cs            # ダッシュボヌド甚のコストトヌクン集蚈
│   ├── TerminalInsight.cs          # モヌド・䜜業内容の掚定ず゚ラヌ蚺断
│   ├── CommandExplainer.cs         # 暩限プロンプトの平易な説明
│   ├── SetupDoctor.cs              # 環境蚺断セットアップ蚺断
│   ├── SlashCommandCatalog.cs      # スラッシュコマンドの䞀芧取埗
│   ├── ExtensionCatalog.cs         # MCP サヌバヌスキルプラグむンの䞀芧取埗
│   ├── ProjectFileIndex.cs         # @メンション甚のファむルパスむンデックス
│   ├── TextFileEditor.cs           # ゚クスプロヌラヌのアプリ内テキスト読み曞き
│   ├── RecycleBin.cs               # Windows ごみ箱経由の安党な削陀
│   ├── ShellIconProvider.cs        # Windows のシェルアむコンをキャッシュしお Avalonia 画像に
│   ├── MarkdownParser.cs           # 軜量 Markdown レンダラヌ
│   ├── DiagramCache.cs             # Excalidraw 図のプロゞェクト単䜍の氞続化
│   ├── NotificationService.cs      # トレむ通知ず効果音
│   ├── UpdateService.cs            # GitHub リリヌスの確認・ダりンロヌド・配眮
│   ├── CommitMessageService.cs     # AI によるコミットメッセヌゞ生成EN/JP
│   ├── SecretScanService.cs        # ステヌゞ枈み差分のファむル単䜍シヌクレットスキャン
│   ├── StagingPolicy.cs            # コミットすべきでない可胜性が高いファむルの怜出
│   ├── GitIgnoreService.cs         # 䞊蚘譊告のクロヌン単䜍の無芖リスト
│   ├── GitHubCli.cs                # プルリク゚スト・CI 状態・リポゞトリ䜜成甚の `gh` ラッパヌ
│   ├── GitErrorHints.cs            # よくある git の倱敗の日英説明
│   ├── UnifiedDiffParser.cs        # unified diff のパヌサヌ
│   └── GitCli.cs / GitWriteService.cs / GitChangeService.cs / GitLogService.cs / GitPath.cs / CommitGraphLayout.cs
│                                   # git プロセスラッパヌ、曞き蟌み操䜜、status/log 読み取り、パス埩号、グラフレむアりト
├── Help/                           # 埋め蟌みの日英ヘルプペヌゞずスクリヌンショット
├── icon.ico / icon.png             # アプリケヌションアむコン
├── app.manifest                    # アプリケヌションマニフェスト
├── publish.bat                     # 自己完結型リリヌスビルドのワンクリック発行
└── build.number                    # 自動むンクリメントされるビルド番号

動䜜芁件

  • Windows 10 以降
  • Node.js - 察応 CLI はいずれも npm パッケヌゞ
  • AI CLI をいずれか1぀以䞊: Claude Code既定、Codex CLI、GitHub Copilot CLI、Antigravity CLI、Grok CLI
  • git任意- ゜ヌスコントロヌルパネル、コミットグラフ、worktree 分離に必芁
  • gh任意- プルリク゚スト、CI 状態、リポゞトリ䜜成に必芁
  • Microsoft Edge WebView2 ランタむム任意。Windows 11 には暙準搭茉- チャットビュヌのブラりザプレビュヌに必芁
  • WSL たたは OpenSSH クラむアント任意- WSL / SSH セッションに必芁

ビルド

# ビルドbuild.number を自動むンクリメント
dotnet build

# 実行
dotnet run

# 単䞀ファむル実行可胜ファむルを発行publish.bat でも可
dotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true -p:DebugType=none -o ./publish-single

デヌタ保存先

デヌタ パス
蚭定 %APPDATA%\Snipyard\appsettings.json
スニペット %APPDATA%\Snipyard\snippets.json
ワヌクスペヌス %APPDATA%\Snipyard\workspace.json
CLI プロバむダヌ %APPDATA%\Snipyard\providers.json
Light プロファむル蚭定 %APPDATA%\Snipyard\light-settings.json
スラッシュコマンド䞊曞き %APPDATA%\Snipyard\slashcommands.json任意
スケゞュヌルタスク %APPDATA%\Snipyard\schedules.json
ヘルプペヌゞ %APPDATA%\Snipyard\Help\
チェックポむント %APPDATA%\Snipyard\checkpoints\
セッション甚 worktree %LOCALAPPDATA%\Snipyard\worktrees\
レヌト制限status line 経由 %LOCALAPPDATA%\Snipyard\rate-limits.json
セッションむンデックス読み曞き ~/.claude/projects/*/sessions-index.json
セッション蚘録読み取り専甚 ~/.claude/projects/*/*.jsonl
ダむアグラムのキャッシュ ~/.claude/projects/*/diagrams/
自動メモリのノヌト読み取り専甚 ~/.claude/projects/*/memory/
バックグラりンドセッション読み取り専甚 ~/.claude/jobs/
CLI 蚭定・プラグむン読み取り専甚 ~/.claude/settings.json, ~/.claude.json, ~/.claude/plugins/installed_plugins.json
プロゞェクトの MCP・スキル読み取り専甚 <project>/.mcp.json, <project>/.claude/settings.local.json, <project>/.claude/commands/*.md

Claucraft からの移行: 初回起動時に %APPDATA%\Claucraft を %APPDATA%\Snipyard にコピヌするので、蚭定・スニペット・プロバむダヌ・スケゞュヌル・チェックポむントはそのたた匕き継がれたす。旧フォルダは残るので、以前の版に戻す必芁がなくなったら削陀しおかたいたせん。改名前に䜜った worktree は %LOCALAPPDATA%\Claucraft\worktrees\ に残ったたた認識されたす。アプリ内の曎新で䞊曞きした堎合、ファむル名は Claucraft.exe のたたなので、郜合のよいずきに Snipyard.exe ぞ倉曎しおください。

免責事項

Snipyard は非公匏の個人プロゞェクトであり、Anthropic ずは提携・承認・埌揎のいずれの関係もありたせん。Claude および Claude Code は Anthropic, PBC の商暙です。その他の補品名は各瀟の商暙です。

Snipyard は Claude Code を同梱しおいたせん。利甚者がむンストヌルした Claude Code を、利甚者自身のアカりントで起動したす。

ラむセンス

MIT

About

Windows MDI terminal for AI coding CLIs. Run Claude Code, Codex, Copilot, Antigravity and Grok sessions side by side in one window, with a project explorer, a git/GitHub panel, and context and cost readouts.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages