# Add git-sync CLI entrypoint

`7a8fae0`→[main](/content/gh/entireio/git-sync/commits/main/index.html)·

Soph·3mo ago·1 file·+259 added/-0 removed

## Sessions

2fdb51a2ea3cView transcript

[?\
Can you take a look at the go code (wasm) in /Users/soph/Work/entire/devenv/entire-io-worktree1 based a bit on that I wonder if something like this can be build:Codex·GPT-5.4·1 step](/content/gh/entireio/git-sync/session/019d6d29-8cf7-7fe3-adc9-8c3e4d9d5603#timeline-2fdb51a2ea3c/index.html)

## Changes

1

- cmd/git-sync

## Go Code

```go
package main

import (
	"context"
	"errors"
	"flag"
	"fmt"
	"os"
	"strings"

"github.com/go-git/go-git/v5/plumbing"
	"github.com/soph/git-sync/internal/syncer"
)

func main() {
	if err := run(context.Background(), os.Args[1:]); err != nil {
		fmt.Fprintf(os.Stderr, "error: %v\n", err)
		os.Exit(1)
	}
}

func run(ctx context.Context, args []string) error {
	if len(args) == 0 {
		return usageError("")
	}

switch args[0] {
	case "sync":
		return runSyncLike(ctx, "sync", args[1:], false)
	case "plan":
		return runSyncLike(ctx, "plan", args[1:], true)
	case "probe":
		return runProbe(ctx, args[1:])
	case "fetch":
		return runFetch(ctx, args[1:])
	case "help", "-h", "--help":
		return usageError("")
	default:
		return usageError(fmt.Sprintf("unknown command %q", args[0]))
	}
}

// ... Remaining code omitted for brevity
```
