Shikigami: Run coding agents in parallel

5 min read Original article ↗

macOS & Linux · Free to use

Run coding agents
in parallel.

Run a pack of agents (on Claude or Codex), each in its own isolated git worktree, so they don’t step on each other. Then review it all in the editor: diffs, git, databases, Docker. Sessions are saved, so you can quit and pick any of them up later.

signed .dmg · macOS & Linux · free

Shipping in beta · rough edges expected · bug reports welcome

Shikigami showing parallel agents, a collapsible agent sidebar, Editor, databases, Git History, and Docker tools

1 <?php

2  

3 declare(strict_types=1);

4  

5 namespace App\Module\Holiday\UseCase\Command;

6  

7 use App\Module\Holiday\DTO\PublicHolidayCalendarDTO;

8 use App\Shared\Facade\DateNagerInterface;

9  

10 final readonly class SyncCalendarCommandHandler

11 {

12 public function __construct(

Igor 5d01a4e 13 private DateNagerInterface $dateNager,

14 private CalendarRepositoryInterface $calendarRepository,

15 ) {}

16  

17 public function __invoke(SyncCalendarCommand $command): void

18 {

19 [$countryCode, $countryName, $year] = $command->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

18Run `bin/console app:holiday:sync`.

18+Run `bin/console app:holiday:sync --country=DE`.

22The command replaces the calendar.

22+The command upserts a country calendar safely.

26Supported provider: local fixtures.

26+Supported provider: DateNager public holidays.

README.md · HEAD

18Run `bin/console app:holiday:sync`.

22The command replaces the calendar.

26Supported provider: local fixtures.

README.md · working tree

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

shop ▸ shop ▸ users read-only

shop ▸ shop read-only MySQL 8.4

DOCKER · default · Engine 29.6.1

Bring your agents

local

Claude

claude on your PATH

supported agent runtime

local

supported agent runtime

Requires Claude Code and/or Codex CLI installed locally.

Igor, the developer behind Shikigami

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 LinkedIn

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.

Shikigami fox-mask mark

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

A full IDE to review their work

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

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.

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.

Shikigami

Run your first agent.

Free. Solo mode. A signed desktop app. No account, no cloud.