Why is the isogit CLI so vastly different to git?

Author: SimonEastCreated Jun 28, 2026Updated Jun 28, 2026

Hi. I've just come across isomorphic-git for the first time today and was trying out the CLI.

When I read on the website that "isomorphic-git aims for 100% interoperability with the canonical git implementation", I assumed the commands would be the same. Yet the basics like git status and git add don't work like I was expecting.

git status

standard git:

>git status
On branch master

No commits yet

nothing to commit (create/copy files and use "git add" to track)

isogit:

❯ isogit status
The function requires a "filepath" parameter but none was provided.
MissingParameterError: The function requires a "filepath" parameter but none was provided.
    at new BaseError (/home/projects/stackblitz-starters-ndddfnsm/node_modules/isomorphic-git/index.cjs:353:5)
    at new MissingParameterError (/home/projects/stackblitz-starters-ndddfnsm/node_modules/isomorphic-git/index.cjs:3846:5)
    at assertParameter (/home/projects/stackblitz-starters-ndddfnsm/node_modules/isomorphic-git/index.cjs:5276:11)
    at Object.status (/home/projects/stackblitz-starters-ndddfnsm/node_modules/isomorphic-git/index.cjs:16138:5)
    at eval (/home/projects/stackblitz-starters-ndddfnsm/node_modules/isomorphic-git/cli.cjs:14:38)
    at module.exports (/home/projects/stackblitz-starters-ndddfnsm/node_modules/minimisted/index.js:12:10)
    at Object.eval (/home/projects/stackblitz-starters-ndddfnsm/node_modules/isomorphic-git/cli.cjs:12:1)
    at Module._compile (node:internal/modules/cjs/loader:160:19302)
    at Module._extensions..js (node:internal/modules/cjs/loader:160:20043) {
  caller: 'git.status',
  code: 'MissingParameterError',
  data: { parameter: 'filepath' }
}

Why does it require a "filepath" parameter? I just want the overall status of the repo/working directory.

git add .

standard git:

>git add .

(stages all files in the current directory)

isogit:

>isogit add .
The function requires a "filepath" parameter but none was provided.
MissingParameterError: The function requires a "filepath" parameter but none was provided.
    at new BaseError (/home/projects/stackblitz-starters-ndddfnsm/node_modules/isomorphic-git/index.cjs:353:5)
    at new MissingParameterError (/home/projects/stackblitz-starters-ndddfnsm/node_modules/isomorphic-git/index.cjs:3846:5)
    at assertParameter (/home/projects/stackblitz-starters-ndddfnsm/node_modules/isomorphic-git/index.cjs:5276:11)
    at Object.add (/home/projects/stackblitz-starters-ndddfnsm/node_modules/isomorphic-git/index.cjs:5647:5)
    at eval (/home/projects/stackblitz-starters-ndddfnsm/node_modules/isomorphic-git/cli.cjs:14:38)
    at module.exports (/home/projects/stackblitz-starters-ndddfnsm/node_modules/minimisted/index.js:12:10)
    at Object.eval (/home/projects/stackblitz-starters-ndddfnsm/node_modules/isomorphic-git/cli.cjs:12:1)
    at Module._compile (node:internal/modules/cjs/loader:160:19302)
    at Module._extensions..js (node:internal/modules/cjs/loader:160:20043) {
  caller: 'git.add',
  code: 'MissingParameterError',
  data: { parameter: 'filepath' }

Do I really have to pass in a --filepath parameter to every CLI command?

Can someone help me understand if this behaviour is intentional, and why so?

Source: isomorphic-git/isomorphic-git