Show HN: Shikigami, run AI coding agents in parallel, each in a Git worktree
Shikigami is a desktop IDE that runs multiple AI coding agents in parallel, each in an isolated Git worktree to avoid conflicts. It supports Claude Code and OpenAI Codex, features a full code editor, database browsing, Docker integration, and is free, local, and requires no account.
Search files
0">
Commit message
Staged Changes
Changes
$el.querySelector('[data-editor-tab="' + editorTab + '"]')?.focus()); } ">
1 unpack();
20 $holidays = $this->dateNager->getHolidaysForCountry($countryCode, $year);
21 $dto = PublicHolidayCalendarDTO::createFromNager($countryCode, $countryName, $holidays);
22 $this->calendarRepository->upsertByCountryCode($dto, $year);
23 }
24 }
README.md · @@ Holiday synchronization
18−Run bin/console app:holiday:sync.
18+Run bin/console app:holiday:sync --country=DE.
22−The command replaces the calendar.
22+The command upserts a country calendar safely.
26−Supported provider: local fixtures.
26+Supported provider: DateNager public holidays.
18Run bin/console app:holiday:sync.
22The command replaces the calendar.
26Supported provider: local fixtures.
18Run bin/console app:holiday:sync --country=DE.
22The command upserts a country calendar safely.
26Supported provider: DateNager public holidays.
Who’s out of office?
A small Symfony service for public-holiday calendars, leave requests, and reliable working-day calculations.
Holiday synchronization
Sync a country calendar from DateNager and upsert it without replacing local leave data.
☑ Fetch public holidays by country and year
☑ Map the provider response into calendar DTOs
☐ Schedule the production sync
bin/console app:holiday:sync --country=DE
Limit
WHERE
ORDER BY
shop ▸ shop ▸ users read-only
No rows match this WHERE filter.
shop ▸ shop read-only MySQL 8.4
SQL query
koneko@who-is-out-of-office:~/whos-ooo$ php bin/console app:holiday:sync --country=DE
Syncing public holidays for Germany (2026)…
✓ 12 holidays fetched from DateNager
✓ Calendar DE/2026 upserted successfully
koneko@who-is-out-of-office:~/whos-ooo$ ▌
2 rows · 18ms
id
name
12
Mina Weber
27
Igor Nowak
Commit Author SHA
·
· Docker-compose: who-is-out-of-office
$el.querySelector('[data-docker-tab="' + target + '"]')?.focus()); } ">
Ports
8080 → 80/tcp
No published ports
3306 → 3306/tcp
Environment
APP_ENV=production
DATABASE_URL=mysql://mysql:3306/shop
QUEUE_TRANSPORT=redis://cache:6379
Volumes
./:/srv/app:delegated
mysql-data:/var/lib/mysql
2026-07-13T06:38:10.102Z compose.who-is-out-of-office attached
web | 10.0.0.12 - GET /checkout 200 38ms
web | 10.0.0.12 - POST /api/orders 201 64ms
worker | Handling CheckoutCompleted #8842
worker | Message acknowledged in 23ms
mysql | ready for connections · port 3306
mysql | checkpoint complete · 18 buffers
@:/srv/app$ whoami
@:/srv/app$ ▌
$refs.addAgent?.focus()) }">
New Agent
Start up to eight focused agents in this workspace.
Agent label
Engine & model
Reasoning effort
Low
Medium
High
Agent count
Working directory
Use workspace root
Use a Git worktree
Bring your agents
local
Claude
claude on your PATH
supported agent runtime
local
Codex
codex on your PATH
supported agent runtime
Requires Claude Code and/or Codex CLI installed locally.
Igor Single person · @koneko_lab
Meet the maker
One developer, everything in public.
“It got annoying, jumping between a stack of terminal sessions and a separate IDE. I wanted both worlds in one place, in a way that’s easy and reliable.”
Shikigami is built and released by me, on my own. It’s free, under active development, and currently in beta. Your feedback matters to me, and it shapes where the app goes next.
YouTube
GitHub
Discord
The hard part
Three terminal tabs step on each other.
Spin up a few agents in a few tabs and they fight over the same working tree, clobber each other’s edits, and lose every bit of state the moment you quit. That’s the problem to solve, not another chat box.
Its own worktree, every time
Each agent gets a dedicated git worktree. No collisions, no clobbered edits.
Saved & resumable
Quit and reopen. Sessions reattach exactly where you left them.
One surface to watch them all
Projects as tabs, agents as panes, all of them at a glance.
The name
Why it’s called Shikigami.
A shikigami is a spirit from Japanese folklore, summoned to carry out tasks on someone’s behalf. That’s roughly the model here: you hand work to a set of agents and they go off and run it. The name fit, so it stuck.
What it does
It’s a real desktop app.
Agentic Coding mode runs the agents. A full editor lets you review their work. It’s a native desktop IDE, not a browser wrapper.
The agents
Parallel agents, no collisions
Run as many agents as you need. Each one works in its own git worktree, so they can all touch the same repo at once without overwriting each other.
Bring your own agent
Run each agent on Claude Code (Opus, Sonnet, Haiku) or OpenAI Codex (GPT-5.6). Pick the model and reasoning effort per agent.
Terminal per agent
A real PTY behind every agent: a full shell, not a sandbox.
Resume anywhere
Quit and reopen. Every session reattaches where you left off.
Click a notification, land in the session
When an agent finishes its turn or needs your input, it sends a desktop notification. Click it and you go straight to that agent’s session.
A full IDE to review their work
A full editor built in
Switch to Editor mode for a Monaco code editor with your whole tree, split view, and a diff viewer. Review a diff, walk the git history and per-line blame across every repo in a monorepo, then commit (GPG-signed) without leaving the app.
Code intelligence, included
Go-to-definition, find-references, completion, and live diagnostics for PHP (8.1–8.5) and TypeScript/JavaScript — no language server to install.
Databases, in the app
Browse MySQL tables, run and save SQL queries, and inspect Redis keys — read-only, right beside the diff.
Docker in the dock
See your Compose stack, tail per-service logs, open a container shell, and start or stop services — all from inside the app.
Build in public
There’s a fifth agent. It streams.
Four agents run in the grid. The fifth is the stream where this whole app gets built, live and unedited, commit by commit, by the one developer writing it. Same repo, same branch, nothing cut.
⎿every commit, on stream
⎿every bug, kept in
⎿resumable · full archive on the channel
Subscribe · @koneko_lab
session · live-build ● streaming
⏸ ■ ▣
~/shikigami
⎇main
How it works
Start. Let it run. Review.
01
Start
Name a task and pick an agent — Claude or Codex. It spins up in a fresh, isolated git worktree of its own.
02
Let it run
It works alongside your other agents while you watch, or while you do something else.
03
Review
Read the diff in the editor, resume any session, merge what’s good, and dismiss the rest.
Good for
When one agent isn’t enough.
One agent per feature
One agent per branch, all building at once.
Hands-on coding too
Write the parts you care about in the editor while an agent handles the rest alongside you.
Long migrations
Kick one off, quit, resume it tomorrow.
Parallel bug triage
An agent per failing test, all running at once.
FAQ
Straight answers.
01
Is Shikigami free?
Yes. It’s free to use, no account required, no sign-up, and no cloud.
02
What platforms does it run on?
macOS (a signed .dmg for Apple Silicon and Intel) and Linux, as an AppImage.
03
Is it a cloud or web product?
No. It’s a desktop app that runs on your own machine. Agents and their git worktrees are all local.
04
Which AI agents does it run?
Claude Code (Opus, Sonnet, Haiku) and OpenAI Codex (GPT-5.6), via their local CLIs. Model and effort are chosen per agent.
05
How do agents avoid conflicts?
Each agent gets its own isolated git worktree, so they can all touch the same repository at once without overwriting each other.
Run your first agent.
Free. Solo mode. A signed desktop app. No account, no cloud.
Download for macOS
Apple Silicon M1–M4 · arm64
Intel x64
Linux · AppImage
signed .dmg · no sign-up