diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000000..6e8c9352a1 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,5 @@ +# The bundled ui-render skill is compiled into the binary (`include_str!` in +# src-tauri/src/commands/generative_ui.rs), installed for agents byte for byte, +# and must equal what src/lib/json-render/skill.ts generates, which is LF. +# Windows checkouts convert text to CRLF by default (core.autocrlf), so pin it. +src-tauri/genui/** text eol=lf diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6fd5a48c52..b1e32d6bdc 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -300,32 +300,75 @@ jobs: - name: Install frontend dependencies run: pnpm install --frozen-lockfile - # Build the `codeg-mcp` companion binary for the matrix target and - # stage it as a Tauri sidecar at - # `src-tauri/binaries/codeg-mcp-{.exe}`. `tauri-action` (below) - # then bundles it via the `bundle.externalBin` entry in - # `tauri.conf.json` — Tauri installs it next to the main executable - # (Contents/MacOS on macOS, install root on Linux/Windows) where the - # runtime `locate_codeg_mcp_binary()` finds it via `current_exe` - # sibling lookup. The Linux arm64 cross env vars set above also + # Computer use on macOS: codeg and codeg-computer-helper each check the + # other's code signature at run time, against a designated requirement + # compiled into the binary (never read from the bundle, which the user + # can write to), and codeg launches the helper under a launch + # requirement naming this Team ID, so the kernel runs nothing else from + # the helper's path. All of it names this release's Team ID, so it is + # pinned here, before anything is compiled, for every later step: the + # helper is built by prepare-sidecars (it checks codeg), codeg by + # tauri-action (it checks and launches the helper). A helper built + # without its requirement refuses to start once it is Developer-ID + # signed, and codeg will not build with one pin and not the other. + - name: Pin computer-use trust anchors (macOS) + if: contains(matrix.target, 'apple-darwin') + shell: bash + env: + APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} + run: | + if [ -z "${APPLE_TEAM_ID}" ]; then + echo "FATAL: APPLE_TEAM_ID is required to pin the computer-use trust anchors" + exit 1 + fi + anchor="anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = \"${APPLE_TEAM_ID}\"" + echo "CODEG_COMPUTER_PEER_REQUIREMENT=identifier \"app.codeg\" and ${anchor}" >> "$GITHUB_ENV" + echo "CODEG_COMPUTER_HELPER_REQUIREMENT=identifier \"app.codeg.computer-helper\" and ${anchor}" >> "$GITHUB_ENV" + echo "CODEG_COMPUTER_TEAM_ID=${APPLE_TEAM_ID}" >> "$GITHUB_ENV" + + # Build the sidecars — the `codeg-mcp` companion, the + # `codeg-computer-helper` computer-use executor and the `codeg-cli` + # command-line client — for the matrix target + # and stage them at `src-tauri/binaries/-{.exe}`. + # `tauri-action` (below) then bundles them via the `bundle.externalBin` + # entries in `tauri.conf.json` — Tauri installs them next to the main + # executable (install root on Linux/Windows) where the runtime finds + # them via `current_exe` sibling lookup. On macOS the helper is no + # sidecar: it is staged as `src-tauri/binaries/codeg-computer-helper.app` + # and bundled as `Contents/Helpers/codeg-computer-helper.app` + # (`tauri.macos.conf.json`), since macOS charges an executable's + # permissions to the app bundle it sits in — a helper in Contents/MacOS + # would hold codeg's. The Linux arm64 cross env vars set above also # apply to this cargo invocation. - - name: Stage codeg-mcp sidecar for Tauri bundle + - name: Stage sidecars for Tauri bundle shell: bash run: pnpm tauri:prepare-sidecars --target ${{ matrix.target }} - - name: Verify codeg-mcp sidecar landed + - name: Verify sidecars landed shell: bash run: | ext="" case "${{ matrix.target }}" in *windows*) ext=".exe" ;; esac - file="src-tauri/binaries/codeg-mcp-${{ matrix.target }}${ext}" - if [ ! -f "$file" ]; then - echo "FATAL: sidecar $file missing after prepare-sidecars" - exit 1 - fi - ls -la "$file" + for bin in codeg-mcp codeg-computer-helper codeg-cli; do + file="src-tauri/binaries/${bin}-${{ matrix.target }}${ext}" + if [ ! -s "$file" ]; then + echo "FATAL: sidecar $file missing or empty after prepare-sidecars" + exit 1 + fi + ls -la "$file" + done + case "${{ matrix.target }}" in + *apple-darwin*) + helper="src-tauri/binaries/codeg-computer-helper.app/Contents/MacOS/codeg-computer-helper" + if [ ! -s "$helper" ]; then + echo "FATAL: helper app executable $helper missing or empty after prepare-sidecars" + exit 1 + fi + ls -la "$helper" + ;; + esac - name: Import Apple Developer ID certificate if: contains(matrix.target, 'apple-darwin') @@ -424,6 +467,22 @@ jobs: echo "APPLE_SIGNING_IDENTITY=$cert_id" >> "$GITHUB_ENV" echo "Using Apple signing identity: $cert_id" + # Tauri copies the helper app into the bundle (`bundle.macOS.files`) + # without signing it, and signs the bundle around it without `--deep`, + # so it is signed here, before the bundle is built — inside out, as + # Apple requires — with the hardened runtime, a secure timestamp and no + # entitlements, as notarization and the gate below need. + - name: Sign the computer-use helper app (macOS) + if: contains(matrix.target, 'apple-darwin') + shell: bash + run: | + set -euo pipefail + helper_app="src-tauri/binaries/codeg-computer-helper.app" + codesign --force --options runtime --timestamp \ + --sign "$APPLE_SIGNING_IDENTITY" "$helper_app" + codesign --verify --strict -R="${CODEG_COMPUTER_HELPER_REQUIREMENT}" "$helper_app" + codesign -dv "$helper_app" 2>&1 | grep -E '^(Identifier|TeamIdentifier)=' + - name: Build and upload to draft release (Linux arm64) if: matrix.target == 'aarch64-unknown-linux-gnu' uses: tauri-apps/tauri-action@v0.6.1 @@ -531,6 +590,93 @@ jobs: includeUpdaterJson: true retryAttempts: 2 + # The release gate for computer use on macOS. Notarization and a + # `runtime` flag prove neither of the things that matter here, so each is + # checked on the bundle that was just built and signed: + # * the helper is an app of its own, `Contents/Helpers/ + # codeg-computer-helper.app`, and no bare copy of it is in + # `Contents/MacOS/`: macOS charges an executable's permissions to the + # app bundle it sits in, so a helper there would hold codeg's; + # * codeg, codeg-mcp, codeg-cli and codeg-computer-helper carry NO + # entitlements — + # in particular none that let another process load code into them + # (library-validation / dyld / get-task-allow exemptions), and codeg + # never Apple Events: every agent's shell runs as codeg for TCC. + # * each has the hardened runtime; + # * codeg satisfies the requirement compiled into the helper, and the + # helper the one compiled into codeg — otherwise the two refuse each + # other and computer use cannot start; + # * codeg, codeg-mcp and codeg-cli reference no Accessibility / + # event-posting / + # screen-capture API: holding or using those is the helper's job + # alone. `AXIsProcessTrusted` is the one allowed read-only query. + # codeg alone may also import `CGEventTapCreate`: global-hotkey, + # behind the stop shortcut, links it to watch media keys, and codeg + # never asks it to — `StopShortcut` names no media key and no webview + # is given the shortcut plugin, both held by tests. Nothing else is + # let through. + # * the bundle carries no `codeg-server`, and its `codeg-mcp` and + # `codeg-cli` are the sidecars built without the desktop features (no + # WebKit): the copies `tauri build` compiles itself stay out + # (`server-bin` / `mcp-bin` / `cli-bin`). + - name: Verify computer-use signing and symbols (macOS) + if: contains(matrix.target, 'apple-darwin') + shell: bash + run: | + set -euo pipefail + app="src-tauri/target/${{ matrix.target }}/release/bundle/macos/codeg.app" + if [ ! -d "$app" ]; then + echo "FATAL: $app not found" + exit 1 + fi + codesign --verify --strict --deep "$app" + helper_app="$app/Contents/Helpers/codeg-computer-helper.app" + if [ -e "$app/Contents/MacOS/codeg-computer-helper" ]; then + echo "FATAL: codeg-computer-helper is in Contents/MacOS, where macOS charges it to codeg" + exit 1 + fi + if [ ! -d "$helper_app" ]; then + echo "FATAL: $helper_app not found" + exit 1 + fi + if [ -e "$app/Contents/MacOS/codeg-server" ]; then + echo "FATAL: codeg-server is in the desktop bundle; its binary target must need server-bin" + exit 1 + fi + for sidecar in codeg-mcp codeg-cli; do + if otool -L "$app/Contents/MacOS/$sidecar" | grep -q 'WebKit'; then + echo "FATAL: $sidecar links WebKit: tauri build's own copy replaced the sidecar" + exit 1 + fi + done + for path in "$app/Contents/MacOS/codeg" "$app/Contents/MacOS/codeg-mcp" "$app/Contents/MacOS/codeg-cli" "$helper_app"; do + name="$(basename "$path")" + if ! codesign -dv "$path" 2>&1 | grep -q 'flags=0x[0-9a-f]*(runtime)'; then + echo "FATAL: $name is not signed with the hardened runtime" + exit 1 + fi + if codesign -d --entitlements - --xml "$path" 2>/dev/null | grep -q ''; then + echo "FATAL: $name carries entitlements; codeg's executables must carry none" + codesign -d --entitlements - "$path" || true + exit 1 + fi + done + codesign --verify --strict -R="${CODEG_COMPUTER_PEER_REQUIREMENT}" "$app/Contents/MacOS/codeg" + codesign --verify --strict -R="${CODEG_COMPUTER_HELPER_REQUIREMENT}" "$helper_app" + deny='^_(CGEventPost|CGEventPostToPid|CGEventPostToPSN|CGEventTapCreate|CGEventTapCreateForPid|CGEventTapCreateForPSN|CGWindowListCreateImage|CGWindowListCreateImageFromArray|CGDisplayCreateImage|CGDisplayCreateImageForRect|CGDisplayStreamCreate|CGDisplayStreamCreateWithDispatchQueue|CGRequestScreenCaptureAccess|CGRequestPostEventAccess|AXIsProcessTrustedWithOptions|AXUIElement[A-Za-z]*|AXObserver[A-Za-z]*)$|^_OBJC_CLASS_\$_SC(ShareableContent|Stream|ScreenshotManager|ContentFilter|ContentSharingPicker)$' + for bin in codeg codeg-mcp codeg-cli; do + hits="$(nm -u "$app/Contents/MacOS/$bin" | grep -E "$deny" || true)" + if [ "$bin" = codeg ]; then + hits="$(printf '%s\n' "$hits" | grep -vx '_CGEventTapCreate' || true)" + fi + if [ -n "$hits" ]; then + echo "FATAL: $bin references APIs only codeg-computer-helper may use:" + echo "$hits" + exit 1 + fi + done + echo "computer-use signing and symbol checks passed" + - name: Delete Apple signing keychain if: always() && contains(matrix.target, 'apple-darwin') shell: bash @@ -662,16 +808,23 @@ jobs: pnpm install --frozen-lockfile pnpm build - - name: Build server + codeg-mcp companion + - name: Build server + codeg-mcp companion + computer-use helper + codeg-cli working-directory: src-tauri # `codeg-mcp` is the stdio MCP companion the runtime injects per # session (see acp/delegation/companion.rs). Built with the same # `--no-default-features --target` flags as the server so it shares # the cross-compile env (Linux arm64) without dragging in tauri - # runtime deps. + # runtime deps. Each binary target needs its own feature (Cargo.toml). + # `codeg-computer-helper` serves computer use, which the server + # offers only when started with CODEG_COMPUTER_USE=1 in a desktop + # session; it ships beside the server, where the server looks for it. + # `codeg-cli` is the command-line client (`codeg-cli run …`), for CI + # jobs and scripts on the server's machine or reaching it with --url. run: | - cargo build --release --bin codeg-server --no-default-features --target ${{ matrix.target }} - cargo build --release --bin codeg-mcp --no-default-features --target ${{ matrix.target }} + cargo build --release --bin codeg-server --no-default-features --features server-bin --target ${{ matrix.target }} + cargo build --release --bin codeg-mcp --no-default-features --features mcp-bin --target ${{ matrix.target }} + cargo build --release --bin codeg-computer-helper --no-default-features --features computer-helper --target ${{ matrix.target }} + cargo build --release --bin codeg-cli --no-default-features --features cli-bin --target ${{ matrix.target }} - name: Package (Unix) if: runner.os != 'Windows' @@ -679,7 +832,9 @@ jobs: mkdir -p dist/${{ matrix.artifact }} cp src-tauri/target/${{ matrix.target }}/release/codeg-server dist/${{ matrix.artifact }}/ cp src-tauri/target/${{ matrix.target }}/release/codeg-mcp dist/${{ matrix.artifact }}/ - chmod +x dist/${{ matrix.artifact }}/codeg-server dist/${{ matrix.artifact }}/codeg-mcp + cp src-tauri/target/${{ matrix.target }}/release/codeg-computer-helper dist/${{ matrix.artifact }}/ + cp src-tauri/target/${{ matrix.target }}/release/codeg-cli dist/${{ matrix.artifact }}/ + chmod +x dist/${{ matrix.artifact }}/codeg-server dist/${{ matrix.artifact }}/codeg-mcp dist/${{ matrix.artifact }}/codeg-computer-helper dist/${{ matrix.artifact }}/codeg-cli cp -r out dist/${{ matrix.artifact }}/web cd dist && tar czf ${{ matrix.artifact }}.tar.gz ${{ matrix.artifact }} @@ -690,6 +845,8 @@ jobs: New-Item -ItemType Directory -Force -Path dist/${{ matrix.artifact }} Copy-Item src-tauri/target/${{ matrix.target }}/release/codeg-server.exe dist/${{ matrix.artifact }}/ Copy-Item src-tauri/target/${{ matrix.target }}/release/codeg-mcp.exe dist/${{ matrix.artifact }}/ + Copy-Item src-tauri/target/${{ matrix.target }}/release/codeg-computer-helper.exe dist/${{ matrix.artifact }}/ + Copy-Item src-tauri/target/${{ matrix.target }}/release/codeg-cli.exe dist/${{ matrix.artifact }}/ Copy-Item -Recurse out dist/${{ matrix.artifact }}/web Compress-Archive -Path dist/${{ matrix.artifact }} -DestinationPath dist/${{ matrix.artifact }}.zip @@ -699,6 +856,8 @@ jobs: set -euo pipefail test -x "dist/${{ matrix.artifact }}/codeg-server" test -x "dist/${{ matrix.artifact }}/codeg-mcp" + test -x "dist/${{ matrix.artifact }}/codeg-computer-helper" + test -x "dist/${{ matrix.artifact }}/codeg-cli" # `codeg-mcp --help` exits 0 without flags and prints the usage # line. Only run it for native targets; cross-compiled arm64 # binaries on x64 runners can't execute. @@ -706,8 +865,10 @@ jobs: [ "${{ matrix.target }}" = "x86_64-apple-darwin" ] || \ [ "${{ matrix.target }}" = "aarch64-apple-darwin" ]; then "dist/${{ matrix.artifact }}/codeg-mcp" --help | grep -F 'codeg-mcp --parent-connection-id' + "dist/${{ matrix.artifact }}/codeg-cli" --version | grep -F 'codeg-cli ' + "dist/${{ matrix.artifact }}/codeg-cli" --help | grep -F 'Usage: codeg-cli' else - echo "skipping codeg-mcp --help on cross-target ${{ matrix.target }}" + echo "skipping codeg-mcp --help and codeg-cli --version on cross-target ${{ matrix.target }}" fi - name: Smoke test packaged artifact (Windows) @@ -720,10 +881,22 @@ jobs: if (-not (Test-Path "dist/${{ matrix.artifact }}/codeg-mcp.exe")) { throw "codeg-mcp.exe missing from packaged artifact" } + if (-not (Test-Path "dist/${{ matrix.artifact }}/codeg-computer-helper.exe")) { + throw "codeg-computer-helper.exe missing from packaged artifact" + } + if (-not (Test-Path "dist/${{ matrix.artifact }}/codeg-cli.exe")) { + throw "codeg-cli.exe missing from packaged artifact" + } $help = & "dist/${{ matrix.artifact }}/codeg-mcp.exe" --help if ($help -notlike "*codeg-mcp --parent-connection-id*") { throw "codeg-mcp --help output unexpected: $help" } + # A console program: its help comes back on stdout, named as the + # docs name it (no `.exe`). + $cliHelp = (& "dist/${{ matrix.artifact }}/codeg-cli.exe" --help) -join "`n" + if ($cliHelp -notlike "*Usage: codeg-cli*") { + throw "codeg-cli --help output unexpected: $cliHelp" + } - name: Upload artifact for Docker build (Linux only) if: startsWith(matrix.target, 'x86_64-unknown-linux') || startsWith(matrix.target, 'aarch64-unknown-linux') @@ -737,6 +910,10 @@ jobs: # updater uses (`tauri signer sign` writes `.sig`). The server's # `update::verify` module verifies this signature against the embedded # public key before installing — see src-tauri/src/update/verify.rs. + # `--app-version` binds it to this release's version (the tag, which + # the draft-release job matched against tauri.conf.json): the server + # refuses an archive signed for any other version than latest.json + # announces, or for none. - name: Sign and checksum bundle (Unix) if: runner.os != 'Windows' env: @@ -744,7 +921,7 @@ jobs: TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }} run: | set -euo pipefail - pnpm tauri signer sign "dist/${{ matrix.artifact }}.tar.gz" + pnpm tauri signer sign --app-version "${GITHUB_REF_NAME#v}" "dist/${{ matrix.artifact }}.tar.gz" test -f "dist/${{ matrix.artifact }}.tar.gz.sig" ( cd dist && shasum -a 256 "${{ matrix.artifact }}.tar.gz" > "${{ matrix.artifact }}.tar.gz.sha256" ) @@ -755,7 +932,8 @@ jobs: TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }} TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }} run: | - pnpm tauri signer sign "dist/${{ matrix.artifact }}.zip" + $version = $env:GITHUB_REF_NAME.TrimStart('v') + pnpm tauri signer sign --app-version $version "dist/${{ matrix.artifact }}.zip" if (-not (Test-Path "dist/${{ matrix.artifact }}.zip.sig")) { throw "signature not produced for ${{ matrix.artifact }}.zip" } @@ -809,14 +987,17 @@ jobs: mkdir -p dist/amd64 dist/arm64 cp artifacts/linux-x64/codeg-server dist/amd64/codeg-server cp artifacts/linux-x64/codeg-mcp dist/amd64/codeg-mcp + cp artifacts/linux-x64/codeg-cli dist/amd64/codeg-cli cp artifacts/linux-arm64/codeg-server dist/arm64/codeg-server cp artifacts/linux-arm64/codeg-mcp dist/arm64/codeg-mcp + cp artifacts/linux-arm64/codeg-cli dist/arm64/codeg-cli cp -r artifacts/linux-x64/web dist/web - chmod +x dist/amd64/codeg-server dist/amd64/codeg-mcp \ - dist/arm64/codeg-server dist/arm64/codeg-mcp + chmod +x dist/amd64/codeg-server dist/amd64/codeg-mcp dist/amd64/codeg-cli \ + dist/arm64/codeg-server dist/arm64/codeg-mcp dist/arm64/codeg-cli # Fail fast if any companion went missing — Docker would otherwise - # produce an image where delegation silently degrades. - for f in dist/amd64/codeg-mcp dist/arm64/codeg-mcp; do + # produce an image where delegation silently degrades, or without + # the codeg-cli its docs promise. + for f in dist/amd64/codeg-mcp dist/arm64/codeg-mcp dist/amd64/codeg-cli dist/arm64/codeg-cli; do test -x "$f" || { echo "FATAL: $f missing or non-exec"; exit 1; } done @@ -839,10 +1020,23 @@ jobs: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} + # The image runs its codeg-cli before it is pushed: an amd64 build loaded + # into the runner's daemon, `codeg-cli --version` inside it. + - name: Smoke test the image's codeg-cli (amd64) + run: | + set -euo pipefail + docker buildx build --platform linux/amd64 --load -t codeg-smoke:local -f Dockerfile.ci . + docker run --rm codeg-smoke:local codeg-cli --version | grep -F 'codeg-cli ' + docker run --rm codeg-smoke:local codeg-cli --help | grep -F 'Usage: codeg-cli' + - name: Extract version from tag id: version run: echo "version=${GITHUB_REF_NAME#v}" >> "$GITHUB_OUTPUT" + # `latest` is the newest stable release. A release candidate goes out + # under its own version only, so nothing that pulls `latest` is moved + # onto it; the line that would name `latest` is left empty, and + # build-push-action skips empty lines. - name: Build and push Docker image uses: docker/build-push-action@v6 with: @@ -850,11 +1044,16 @@ jobs: file: Dockerfile.ci platforms: linux/amd64,linux/arm64 push: true + # The source label is how ghcr.io ties the package to this + # repository: the package page links back here and the package + # inherits the repository's access permissions. + labels: | + org.opencontainers.image.source=https://github.com/${{ github.repository }} tags: | ghcr.io/${{ github.repository }}:${{ steps.version.outputs.version }} - ghcr.io/${{ github.repository }}:latest ${{ secrets.DOCKERHUB_USERNAME }}/codeg:${{ steps.version.outputs.version }} - ${{ secrets.DOCKERHUB_USERNAME }}/codeg:latest + ${{ needs.create-draft-release.outputs.prerelease != 'true' && format('ghcr.io/{0}:latest', github.repository) || '' }} + ${{ needs.create-draft-release.outputs.prerelease != 'true' && format('{0}/codeg:latest', secrets.DOCKERHUB_USERNAME) || '' }} publish-release: needs: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 07bb40a120..7d38171826 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -69,7 +69,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-22.04, macos-latest, windows-latest] - mode: [desktop, server] + mode: [desktop, server, cli] include: - mode: desktop # `test-utils` exposes test scaffolding (AppState::new_for_test, @@ -86,14 +86,22 @@ jobs: # need for webkit/appindicator system libs. `--lib` skips # integration tests for `cargo test`, so `test-utils` is not # required here. - cargo_args: "--no-default-features --bin codeg-server --lib" + cargo_args: "--no-default-features --features server-bin --bin codeg-server --lib" # Server clippy intentionally skips `--all-targets`: integration # tests are already linted in the desktop cells, and pulling # them in here would force `test-utils` (a test-only feature) # into the server build matrix. Lint scope here is lib + the # codeg-server binary, which is exactly the cfg-gated surface # that this cell exists to verify. - clippy_args: "--no-default-features --bin codeg-server --lib" + clippy_args: "--no-default-features --features server-bin --bin codeg-server --lib" + - mode: cli + # The `codeg-cli` client (`src/cli/`), which only `cli-bin` + # compiles: the server cells leave it out, and the Windows + # desktop cell only builds its tests (`--no-run`), so without + # this cell they would never run on Windows. The runtime side + # (`cli_run`) is in the lib, which the server cells test already. + cargo_args: "--no-default-features --features cli-bin --lib cli::" + clippy_args: "--no-default-features --features cli-bin --bin codeg-cli --lib" steps: - uses: actions/checkout@v4 @@ -160,3 +168,84 @@ jobs: echo "::error::Web handlers must call commands/*_core, not services directly." exit 1 fi + + install-sh: + # install.sh stops what runs the files it replaces, and nothing else: on + # Linux `cp` onto a running program fails, but the desktop app, other + # users, other directories and containers run a codeg-server or codeg-mcp + # of their own. The test runs the script's stop section against fake + # programs; the installer itself downloads a release and writes to + # /usr/local/bin, so it is not run. /bin/bash: on macOS that is 3.2, what + # `curl … | bash` gets there. Linux runs it once more as root, for + # processes of other mount namespaces. + name: install.sh on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-22.04, macos-latest] + steps: + - uses: actions/checkout@v4 + + - name: install.sh parses + run: /bin/bash -n install.sh + + - name: install.sh stops only what runs the files it replaces + env: + CODEG_INSTALL_TEST_STRICT: "1" + run: /bin/bash scripts/test-install-stop.sh install.sh + + - name: The same, as root + if: runner.os == 'Linux' + run: sudo CODEG_INSTALL_TEST_STRICT=1 /bin/bash scripts/test-install-stop.sh install.sh + + install-ps1: + # Two Windows PowerShell 5.1 traps that PowerShell 7 never hits. First, + # `.\install.ps1` reads a script without a BOM in the ANSI code page, + # where a UTF-8 em-dash ends in a curly quote that closes the string it is + # in — and then the whole script fails to parse (`irm … | iex` decodes + # UTF-8, so it is spared this one). Second, Join-Path takes two paths: a + # third fails when its line runs, however the script was loaded — the + # README's `irm … | iex` included. + name: install.ps1 in Windows PowerShell 5.1 + runs-on: windows-latest + steps: + - uses: actions/checkout@v4 + + - name: Check install.ps1 as Windows PowerShell 5.1 reads and runs it + shell: powershell + run: | + $bytes = [System.IO.File]::ReadAllBytes((Join-Path $PWD "install.ps1")) + if ($bytes.Length -ge 3 -and $bytes[0] -eq 0xEF -and $bytes[1] -eq 0xBB -and $bytes[2] -eq 0xBF) { + $text = [System.Text.Encoding]::UTF8.GetString($bytes, 3, $bytes.Length - 3) + } else { + $text = [System.Text.Encoding]::Default.GetString($bytes) + } + $tokens = $null + $errors = $null + $ast = [System.Management.Automation.Language.Parser]::ParseInput($text, [ref]$tokens, [ref]$errors) + if ($errors) { + foreach ($e in $errors) { + Write-Host "::error file=install.ps1,line=$($e.Extent.StartLineNumber)::$($e.Message)" + } + exit 1 + } + # Windows PowerShell 5.1's Join-Path takes two paths (it has no + # -AdditionalChildPath): a third fails when the line runs, not when + # the script parses. + $bad = $false + $calls = $ast.FindAll({ + param($node) + $node -is [System.Management.Automation.Language.CommandAst] -and + $node.GetCommandName() -eq "Join-Path" + }, $true) + foreach ($call in $calls) { + $paths = @($call.CommandElements | Select-Object -Skip 1 | Where-Object { + $_ -isnot [System.Management.Automation.Language.CommandParameterAst] + }) + if ($paths.Count -gt 2) { + Write-Host "::error file=install.ps1,line=$($call.Extent.StartLineNumber)::Join-Path with $($paths.Count) paths fails in Windows PowerShell 5.1" + $bad = $true + } + } + if ($bad) { exit 1 } diff --git a/.gitignore b/.gitignore index 54a39993f1..81c90256d1 100644 --- a/.gitignore +++ b/.gitignore @@ -21,6 +21,10 @@ next-env.d.ts # Monaco editor local files (copied from node_modules) public/vs +# PDF.js runtime files: worker, CMaps, standard fonts, wasm decoders, ICC +# profiles (copied from node_modules by postinstall; see src/lib/pdfjs.ts) +public/pdfjs + # Editor directories and files .vscode/* !.vscode/extensions.json diff --git a/AGENTS.md b/AGENTS.md index 769633bb4d..52d68d4236 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -37,13 +37,13 @@ cargo test --features test-utils cargo clippy --all-targets --features test-utils -- -D warnings # 服务器模式 -cargo check --no-default-features --bin codeg-server -cargo test --no-default-features --bin codeg-server --lib -cargo clippy --no-default-features --bin codeg-server --lib -- -D warnings +cargo check --no-default-features --features server-bin --bin codeg-server +cargo test --no-default-features --features server-bin --bin codeg-server --lib +cargo clippy --no-default-features --features server-bin --bin codeg-server --lib -- -D warnings # codeg-mcp 协作伴生进程(多智能体委托) -cargo check --no-default-features --bin codeg-mcp -cargo clippy --no-default-features --bin codeg-mcp -- -D warnings +cargo check --no-default-features --features mcp-bin --bin codeg-mcp +cargo clippy --no-default-features --features mcp-bin --bin codeg-mcp -- -D warnings # 解析器快照评审(输出变化时) cargo insta review @@ -57,8 +57,10 @@ INSTA_UPDATE=auto cargo test --features test-utils # 自动写新 .snap 项目通过 Cargo feature flags 支持三种二进制: - **`codeg`**(`tauri-runtime`,默认):完整桌面应用,包含 Tauri 窗口管理、系统通知、自动更新等 -- **`codeg-server`**(无 feature,`--no-default-features`):独立服务器模式,仅编译 Axum HTTP API + WebSocket -- **`codeg-mcp`**(无 feature):per-launch stdio MCP 伴生进程,被注入到代理 CLI 的 MCP 配置中,向 LLM 暴露**异步**子智能体委托工具。 +- **`codeg-server`**(`--no-default-features --features server-bin`):独立服务器模式,仅编译 Axum HTTP API + WebSocket +- **`codeg-mcp`**(`--no-default-features --features mcp-bin`):per-launch stdio MCP 伴生进程,被注入到代理 CLI 的 MCP 配置中,向 LLM 暴露**异步**子智能体委托工具。 + +后两个(以及 `codeg-computer-helper` 的 `computer-helper`)各要一个默认不开的 feature:Tauri CLI 会把所有 feature 已开的二进制目标打进桌面安装包,不开就不进包。 ### 共享核心 diff --git a/CLAUDE.md b/CLAUDE.md index 8775ef8119..88a47ef52c 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -37,13 +37,13 @@ cargo test --features test-utils cargo clippy --all-targets --features test-utils -- -D warnings # 服务器模式 -cargo check --no-default-features --bin codeg-server -cargo test --no-default-features --bin codeg-server --lib -cargo clippy --no-default-features --bin codeg-server --lib -- -D warnings +cargo check --no-default-features --features server-bin --bin codeg-server +cargo test --no-default-features --features server-bin --bin codeg-server --lib +cargo clippy --no-default-features --features server-bin --bin codeg-server --lib -- -D warnings # codeg-mcp 协作伴生进程(多智能体委托) -cargo check --no-default-features --bin codeg-mcp -cargo clippy --no-default-features --bin codeg-mcp -- -D warnings +cargo check --no-default-features --features mcp-bin --bin codeg-mcp +cargo clippy --no-default-features --features mcp-bin --bin codeg-mcp -- -D warnings # 解析器快照评审(输出变化时) cargo insta review @@ -57,8 +57,10 @@ INSTA_UPDATE=auto cargo test --features test-utils # 自动写新 .snap 项目通过 Cargo feature flags 支持三种二进制: - **`codeg`**(`tauri-runtime`,默认):完整桌面应用,包含 Tauri 窗口管理、系统通知、自动更新等 -- **`codeg-server`**(无 feature,`--no-default-features`):独立服务器模式,仅编译 Axum HTTP API + WebSocket -- **`codeg-mcp`**(无 feature):per-launch stdio MCP 伴生进程,被注入到代理 CLI 的 MCP 配置中,向 LLM 暴露**异步**子智能体委托工具。 +- **`codeg-server`**(`--no-default-features --features server-bin`):独立服务器模式,仅编译 Axum HTTP API + WebSocket +- **`codeg-mcp`**(`--no-default-features --features mcp-bin`):per-launch stdio MCP 伴生进程,被注入到代理 CLI 的 MCP 配置中,向 LLM 暴露**异步**子智能体委托工具。 + +后两个(以及 `codeg-computer-helper` 的 `computer-helper`)各要一个默认不开的 feature:Tauri CLI 会把所有 feature 已开的二进制目标打进桌面安装包,不开就不进包。 ### 共享核心 diff --git a/Dockerfile b/Dockerfile index b407146349..be81a39919 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,7 +9,7 @@ COPY public/ ./public/ COPY next.config.ts tsconfig.json postcss.config.mjs components.json ./ RUN pnpm build -# Stage 2: Build Rust server binary + codeg-mcp companion +# Stage 2: Build Rust server binary + codeg-mcp companion + codeg-cli FROM rust:slim-bookworm AS backend RUN apt-get update && apt-get install -y pkg-config libssl-dev && rm -rf /var/lib/apt/lists/* WORKDIR /app/src-tauri @@ -17,8 +17,9 @@ COPY src-tauri/ ./ # codeg-mcp is the stdio MCP companion the runtime injects per session # (see acp/delegation/companion.rs). It must ship next to codeg-server so # `locate_codeg_mcp_binary()` finds it via the exe-sibling lookup. -RUN cargo build --release --bin codeg-server --no-default-features \ - && cargo build --release --bin codeg-mcp --no-default-features +RUN cargo build --release --bin codeg-server --no-default-features --features server-bin \ + && cargo build --release --bin codeg-mcp --no-default-features --features mcp-bin \ + && cargo build --release --bin codeg-cli --no-default-features --features cli-bin # Stage 3: Runtime FROM node:24-bookworm-slim @@ -42,6 +43,9 @@ RUN apt-get update && apt-get install -y \ COPY --from=backend /app/src-tauri/target/release/codeg-server /usr/local/bin/codeg-server COPY --from=backend /app/src-tauri/target/release/codeg-mcp /usr/local/bin/codeg-mcp +# codeg-cli: `docker exec codeg-cli run …` finds this server through +# its discovery file under CODEG_DATA_DIR (/data/cli). +COPY --from=backend /app/src-tauri/target/release/codeg-cli /usr/local/bin/codeg-cli COPY --from=frontend /app/out /app/web ENV CODEG_STATIC_DIR=/app/web diff --git a/Dockerfile.ci b/Dockerfile.ci index ee6bca35e9..fe49efd062 100644 --- a/Dockerfile.ci +++ b/Dockerfile.ci @@ -27,6 +27,9 @@ COPY dist/${TARGETARCH}/codeg-server /usr/local/bin/codeg-server # (see acp/delegation/companion.rs). It must ship next to codeg-server so # `locate_codeg_mcp_binary()` finds it via the exe-sibling lookup. COPY dist/${TARGETARCH}/codeg-mcp /usr/local/bin/codeg-mcp +# codeg-cli: `docker exec codeg-cli run …` finds this server through +# its discovery file under CODEG_DATA_DIR (/data/cli). +COPY dist/${TARGETARCH}/codeg-cli /usr/local/bin/codeg-cli COPY dist/web /app/web ENV CODEG_STATIC_DIR=/app/web diff --git a/README.md b/README.md index a79a03e595..b570b3af84 100644 --- a/README.md +++ b/README.md @@ -1,32 +1,44 @@ -# Codeg - -[![Release](https://img.shields.io/github/v/release/xintaofei/codeg)](https://github.com/xintaofei/codeg/releases) -[![Docs](https://img.shields.io/badge/docs-docs.codeg.app-3451b2)](https://docs.codeg.app) -[![License](https://img.shields.io/github/license/xintaofei/codeg)](./LICENSE) - -

- English | - 简体中文 | - 繁體中文 | - 日本語 | - 한국어 | - Español | - Deutsch | - Français | - Português | - العربية +

+ Codeg logo Codeg +

+ +

+ GitHub stars + Latest release + Total downloads + License + Documentation + Platforms: macOS, Windows, Linux, Docker, iOS, Android

-Codeg (Code Generation) is a multi-agent coding workspace: run every AI coding agent in one place — and let them work together. +

+ English · 简体中文 · 繁體中文 · 日本語 · 한국어 · Español · Deutsch · Français · Português · العربية +

-It aggregates your sessions from every supported agent CLI into one searchable workspace, and lets a main agent delegate to sub-agents of other types within a single task. Work you'd rather not sit through goes on a to-do board instead — each task in its own branch, running unattended, waiting for your review before it lands. Codeg runs as a desktop app, a standalone server, or a Docker container, with native iOS and Android clients for when you're away from your desk; fifteen agents come built in, and you can register any other ACP-compatible agent yourself. +

+ The multi-agent coding workspace.
+ Run every AI coding agent in one place — and let them work together. +

-![workspace](./docs/images/workspace-light.png#gh-light-mode-only) -![workspace](./docs/images/workspace-dark.png#gh-dark-mode-only) +

Download Codeg · Documentation

-## 📖 Documentation +

+ + + The Codeg workspace: a conversation with an agent beside its live diffs and the project's files + +

-**Full documentation lives at [docs.codeg.app](https://docs.codeg.app)** — [Getting Started](https://docs.codeg.app/getting-started/) · [Guide](https://docs.codeg.app/guide/) · [Reference](https://docs.codeg.app/reference/) + + + + + + + + + +
🧩 One interface for every agent
Nineteen agents built in, and any ACP agent can join — all rendered as the same structured conversation, not a terminal.
🔎 Sessions that travel
Import, search, and resume the history every agent keeps on disk, then hand it to a different agent.
🤝 Agents that work together
Delegate across agents with an @, or queue to-dos that run unattended in their own worktrees.
🌍 Wherever you work
Desktop app, self-hosted server or Docker, iPhone, iPad, and Android — and Telegram, Lark, or WeChat.
## 💖 Sponsors @@ -45,13 +57,6 @@ It aggregates your sessions from every supported agent CLI into one searchable w Thanks to 合租巴士 for sponsoring this project! 合租巴士 is a reliable and efficient AI relay platform, offering highly stable relay for mainstream models such as Codex and Claude Code. Top-ups are credited at a transparent 1:1 ratio, with Codex rate subsidies as low as 0.08. Join the group via the official website to get $5 in trial credit. - - - LQ router
- LQ router - - Thanks to LQ router 中转站 for sponsoring this project! LQ router is a professional, enterprise-grade AI relay service that gives businesses and individual developers stable, efficient, and low-cost access to AI model APIs. The platform supports leading models including GPT, Claude, Grok, and Gemini, with GPT Pro rate multipliers as low as 0.1x. Join the group through the official website to receive $1 in trial credit. - APIMart
@@ -72,10 +77,10 @@ It aggregates your sessions from every supported agent CLI into one searchable w - Fluxion AI
- Fluxion AI + Sidrune AI
+ Sidrune AI - Thanks to Fluxion AI for sponsoring this project! Fluxion AI provides fast, reliable, and cost-efficient API access to GPT, Claude, Gemini, and other leading AI models through one unified API. New users can receive $3 in API credits through our dedicated link. + Thanks to Sidrune AI for sponsoring this project! Sidrune AI gives you access to GPT, Claude, and other major AI models through a single API. New users who sign up through our dedicated link with promo code SDRCODEG get $3 in API credits. @@ -88,133 +93,269 @@ It aggregates your sessions from every supported agent CLI into one searchable w > Want to become a Codeg sponsor? [Reach out to us by email.](mailto:itpkcn@gmail.com) -## 🤖 Supported Agents - -Claude Code · Codex · Gemini · OpenClaw · OpenCode · Cline · Hermes · CodeBuddy · Kimi Code · Pi · Grok · Cursor · DeepSeek Harness · Qoder · Google Antigravity - -Codeg installs, pins, and updates most of them for you. See [Supported Agents](https://docs.codeg.app/guide/supported-agents) for the full roster, each agent's runtime requirements, and where it keeps its sessions on disk. - -Not on the list? Add it yourself. Pick any agent from the public ACP registry or paste its distribution JSON, and Codeg installs it, checks it can launch, and treats it like a built-in — it shows up in the picker, takes `@` delegation and skills, and gets its conversations recorded and searchable even when the agent keeps no history of its own. → [Custom Agents](https://docs.codeg.app/guide/custom-agents) - -## 🤝 Multi-Agent Collaboration - -Multi-agent collaboration, reduced to a single keystroke: type `@`, pick an agent, hit send. Codeg handles the scheduling — it launches each mentioned agent as its own session, hands over the task, and streams the work back into the thread you're already in. Mention two and they run side by side: Claude Code drafting while Codex reviews. No context switching, no copy-pasting between terminals. +## ✨ Features -And when an agent spawns sub-agents of its own — Claude Code, Codex, Grok and OpenCode all do — each child gets a card that fills in while it works, instead of landing all at once when it finishes. Open one to read the child's own session. - -![Delegating a task to sub-agents from a single Codeg conversation](./docs/images/collaboration-light.gif#gh-light-mode-only) -![Delegating a task to sub-agents from a single Codeg conversation](./docs/images/collaboration-dark.gif#gh-dark-mode-only) - -## ✅ To-dos - -Not every job needs you watching it. Write one down — a title, a description, the agent to run it with — and Codeg hands it **its own copy of the code**: a git worktree beside your project, on its own branch. Several run at once without touching each other, or the tree you're working in. Schedule one for tonight, or let a folder work through its queue on its own, up to a concurrency limit you set. - -A finished task doesn't merge itself. It moves to a review column and waits: read the diff, send it back for another pass, or accept it — and the agent lands it, pulling your base branch into its worktree and resolving conflicts there first. Codeg then checks git rather than taking the agent's word for it; a merge it can't confirm goes back to review instead of reporting success. - -![The To-dos board, with tasks moving from To do through In progress to Done](./docs/images/task-light.png#gh-light-mode-only) -![The To-dos board, with tasks moving from To do through In progress to Done](./docs/images/task-dark.png#gh-dark-mode-only) - -## 🪟 Split View - -One tab strip isn't always enough. Right-click a conversation tab to split the view **right** or **down**, as many times as you like: two panes side by side, a stack of three, a grid. Each group is a workspace of its own — its own tabs, its own header, its own new-conversation button — so Claude Code can refactor in one pane while Codex reviews a diff in the next. - -Drag a tab from one group into another and its session keeps streaming through the move; drag the divider between two groups to change how they share the space. Your layout is remembered per workspace, drafts included: reopen Codeg and the split comes back, with the text you never sent still in the box. - -![Splitting the conversation area into a grid of tab groups](./docs/images/split-light.gif#gh-light-mode-only) -![Splitting the conversation area into a grid of tab groups](./docs/images/split-dark.gif#gh-dark-mode-only) - -## 📄 Office Documents - -Ask for a deck, a report, or a workbook and the agent builds a real `.pptx` / `.docx` / `.xlsx` — while the pane on the right renders it live. Every edit lands in the preview on its own: slides fill in, tables take shape, numbers land in cells. Don't like slide 4? Say so in the next message — the agent edits the same file in place and the preview catches up. No export step, no external Office app, no leaving Codeg. - -![An agent editing an Office document beside its live in-tab preview](./docs/images/office-light.png#gh-light-mode-only) -![An agent editing an Office document beside its live in-tab preview](./docs/images/office-dark.png#gh-dark-mode-only) - -## 💻 Workspace - -One workspace, every agent. Whichever one is driving — Claude Code, Codex, Cursor — it works in the same editor, the same live diffs, the same git client, and what it produces is real files in your repo, changing while you watch. Link other directories in — a shared library, a sibling service, the docs repo — and the file tree, the search, and the agent itself treat them as one workspace. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +### One Interface for Every Agent + +Nineteen agents come built in, and any other ACP agent can join from the public registry or its distribution JSON. Codeg speaks the Agent Client Protocol to every one of them, so they all get the same rich conversation — tool cards, live diffs, plans, and permission prompts — instead of a terminal to squint at. Enable UI Render for an agent and it can answer with interactive cards, tables, and charts. -**Sessions.** Pull in the history you already have: past sessions from every installed agent, imported in one click and resumable where you left them. Once they're in, they stop being separate silos — `@`-mention an old session and the agent you're talking to can read it, even when a different agent wrote it, so today's Codex run picks up where last week's Claude Code session ended. However long a thread gets, it opens on its recent rounds and pages the rest in as you scroll back. +[Docs →](https://docs.codeg.app/guide/supported-agents) · [Custom agents →](https://docs.codeg.app/guide/custom-agents) · [UI Render →](https://docs.codeg.app/guide/skills#cards-tables-and-charts-in-replies) -**Files.** The agent's edits show up as diffs beside the conversation as they land. Open any file in a real editor with syntax highlighting, send a file — or just a selection — straight to the agent with `⌘L`, and preview Markdown, HTML, images, and Office documents in the same pane. + + + + One Interface for Every Agent + +
+ +### Every Session, Searchable + +Codeg reads the history every agent CLI keeps on disk: import it in one click, search all of it, and resume any session where it stopped. `@`-mention an old session and the agent you're talking to can read it — even one a different agent wrote. Give conversations colored tags, global or per folder, and filter the sidebar by them. + +[Docs →](https://docs.codeg.app/guide/aggregation) · [Tags →](https://docs.codeg.app/guide/workspace#tag-conversations) -**Git.** A full client, not a status readout: commit straight from the Changes tab — type a message, press Enter — with pull, fetch, push and stash beside it, and history that shows which commits are pushed. Branch, merge, rebase, reset, or diff against another branch, and update or push any branch without switching to it. Conflicts open a three-pane merge editor where you accept hunk by hunk or type the fix yourself. And worktrees make parallel work one action — a new branch, its own directory, and a fresh conversation rooted in it, so a fleet of agents build different features at once without touching each other's files. + + + + Every Session, Searchable + +
+ +### Multi-Agent Collaboration + +Type `@`, pick an agent, send. Each mentioned agent runs as its own session, side by side, streaming back into your thread — Claude Code drafting while Codex reviews — and sub-agents show up as cards that fill in while they work. + +[Docs →](https://docs.codeg.app/guide/multi-agent) -**When it goes wrong.** A failed turn doesn't just say something went wrong — on Claude Code and Codex it names the kind: a connection issue, an access issue, a limit reached, a request rejected, a service issue — and docks a strip under the composer carrying whatever would actually help, Retry or Sign in or a new session. Retries the agent makes on its own show amber and settle into a single "Recovered" line. And the connection indicator below the composer is a button: click it for the session's real state, with a Reconnect that resumes rather than starting over. + + + + Multi-Agent Collaboration + +
+ +### To-dos That Run Unattended + +Write a job down and walk away. Each to-do gets its own git worktree and branch, starts now or on a schedule, and then waits for your review; accept the diff and the agent lands it, and Codeg checks git before calling it done. The repository panel can add them for you, too: it picks up issues and pull requests by label and author, on a schedule or when a webhook fires. + +[Docs →](https://docs.codeg.app/guide/tasks) · [Auto-processing →](https://docs.codeg.app/guide/repository#let-it-pick-items-up-by-itself) + + + + + To-dos That Run Unattended + +
+ +### Infinite Canvas + +Lay your work out in space: conversations, files, terminals, and notes become cards on a board, grouped by folder and agent, so several agents can run side by side in plain sight. + +[Docs →](https://docs.codeg.app/guide/canvas) + + + + + Infinite Canvas + +
+ +### Desktop, Server, Mobile & Chat + +Run Codeg as a desktop app, a self-hosted server you open in any browser, or a single Docker container, and open a remote server from the desktop app in a workspace window of its own. Native iPhone, iPad, and Android clients — plus Telegram, Lark, and WeChat channels — keep your agents in reach, while your files and sessions stay on machines you control. + +[Docs →](https://docs.codeg.app/getting-started/deployment) · [Remote workspaces →](https://docs.codeg.app/guide/workspace#desktop-and-browser) · [Mobile apps →](https://docs.codeg.app/getting-started/installation#mobile-apps) · [Chat channels →](https://docs.codeg.app/guide/chat-channels) + + + + + Desktop, Server, Mobile & Chat + +
+ +### Office Documents & Research + +Ask for a deck, a report, or a workbook and watch the real `.pptx`, `.docx`, or `.xlsx` render live beside the conversation; PDFs get a viewer of their own. Bundled research skills — hypotheses, experimental design, statistics, literature search — work with any agent. + +[Docs →](https://docs.codeg.app/guide/office) · [Research →](https://docs.codeg.app/guide/research) + + + + + Office Documents & Research + +
+ +### Browser & Computer Use + +In the desktop app, links open in a built-in browser beside your files, at desktop, tablet, or phone size: hand the agent a page, an element, a screenshot, or a console error, or let it drive a page you share. In preview, agents can also see and operate the windows you share — and Stop is one click away. + +[Docs →](https://docs.codeg.app/guide/browser) · [Computer Use →](https://docs.codeg.app/guide/computer-use) + + + + + Browser & Computer Use + +
+ +### The Full Engineering Loop + +An editor, live and side-by-side diffs, a full git client with a three-pane merge editor, one-click worktrees, an embedded terminal, and split views — all next to the agent, on the real files in your repo. + +[Docs →](https://docs.codeg.app/guide/workspace) · [Git & worktrees →](https://docs.codeg.app/guide/git) + + + + + The Full Engineering Loop + +
-## 📱 iPhone, iPad & Android +**Also in the box:** + +- **[Repository Panel](https://docs.codeg.app/guide/repository)** — issues, pull requests, checks, and merges for GitHub, GitLab, Gitea, and Forgejo; any issue or PR can become a to-do +- **[Automations](https://docs.codeg.app/guide/automations)** — save a configured composer and run it headlessly, on a cron schedule or on demand +- **[Token Usage](https://docs.codeg.app/guide/token-usage)** — trends, cache hit rate, an activity heatmap, usage by folder, agent, model, and session, and what it would cost at API list prices +- **[Fork & Steer](https://docs.codeg.app/guide/workspace#follow-along-%E2%80%94-the-conversation)** — fork a conversation from a finished reply, or send a message into a turn that is still running, on agents that support it +- **[Skills](https://docs.codeg.app/guide/skills) & [MCP](https://docs.codeg.app/guide/mcp)** — skill packs per agent, a local MCP scan, and registry search and install +- **[Project Boot](https://docs.codeg.app/guide/project-boot)** — scaffold a new project visually, with a live preview +- **[Notifications](https://docs.codeg.app/reference/settings/general#desktop-notifications)** — desktop notifications, sounds, and a flashing taskbar button or bouncing Dock icon when a turn ends or an agent needs you +- **[Make It Yours](https://docs.codeg.app/reference/settings/appearance)** — twelve themes you can recolor token by token, wallpapers, corner radius, chat width, custom CSS, and a desktop pet — in any of ten interface languages +- **[Backup & Sync](https://docs.codeg.app/reference/settings/system#backup-restore)** — encrypted backups, and configuration sync between machines through a file or your own WebDAV server +- **[URL Scheme](./docs/url-scheme.md)** — `codeg://session/` opens a conversation from another app (desktop) +- **[Command Line](./docs/cli.md)** — `codeg-cli` runs a prompt through a running Codeg, desktop or server, from a script or a CI job, and prints the reply or JSON events +- **And more** — nearly every release adds something; the [release notes](https://github.com/spacering-net/codeg/releases) are the full list -Step away from your desk, not your work. The native iOS and Android clients connect to the Codeg you already run — the **Web Service** of your desktop app, or your own `codeg-server` — and from there you start sessions, watch replies and tool calls stream in, answer permission prompts, and browse projects and branches. Nothing moves onto the phone: your files, agent CLIs, and conversations stay on the machine running Codeg, and the access token sits in iOS Keychain or Android Keystore. Both clients are open source ([iOS](https://github.com/xintaofei/codeg-ios), [Android](https://github.com/xintaofei/codeg-android)); pairing takes three steps, covered in [Mobile apps](https://docs.codeg.app/getting-started/installation#mobile-apps). +## 🤖 Supported Agents -| iPhone & iPad | Android | -| :-------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------: | -| Starting a session from the Codeg iOS client | An agent reply streaming into the Codeg Android client | +Codeg talks to every agent over the [Agent Client Protocol](https://agentclientprotocol.com), so each one gets the same structured interface. Nineteen come built in, and Codeg installs, pins, and updates most of them for you: -## ✨ Highlights +

+ Claude Code   + Codex   + Gemini CLI   + OpenClaw   + OpenCode   + Cline   + Hermes Agent   + CodeBuddy   + Kimi Code   + Pi   + Grok   + Cursor   + DeepSeek Harness   + Qoder   + Google Antigravity   + Kiro CLI   + ZCode   + TRAE CLI   + Command Code   + + any ACP agent +

-- **[Conversation Aggregation](https://docs.codeg.app/guide/aggregation)** — import sessions from every supported agent into one unified, searchable workspace, and pick any of them up where you left off -- **[Multi-Agent Collaboration](https://docs.codeg.app/guide/multi-agent)** — `@`-mention any agent to delegate: sub-agents of different types run as their own sessions, in parallel, inside a single task -- **[To-dos](https://docs.codeg.app/guide/tasks)** — write down what needs doing and agents work through the queue, each task in its own worktree, landing on your branch only after you've reviewed it -- **[Custom Agents](https://docs.codeg.app/guide/custom-agents)** — register any other ACP-compatible agent from the public registry or its distribution JSON; Codeg installs it, records its history, and treats it like a built-in -- **[The Workspace](https://docs.codeg.app/guide/workspace)** — the full engineering loop next to the agent: file tree, editor and diff, git changes, commit, an embedded terminal, and [several folders linked into one workspace](https://docs.codeg.app/guide/workspace#work-across-several-folders) -- **[URL scheme](docs/url-scheme.md)** — `codeg://session/` opens a conversation from another app (desktop) -- **[Split View](https://docs.codeg.app/guide/workspace#split-the-conversation-view-into-groups)** — split the conversation area into as many tab groups as you like, drag tabs and dividers between them, and get the layout back — drafts included — on restart -- **[Git & Worktrees](https://docs.codeg.app/guide/git)** — review and commit changes, manage Git remote accounts, and run work in parallel with built-in `git worktree` flows -- **[Token Usage](https://docs.codeg.app/guide/token-usage)** — a full report behind the status-bar counter: trends and cache hit rate, an activity heatmap, and breakdowns by folder, agent, model, and session -- **[Chat Channels](https://docs.codeg.app/guide/chat-channels)** — drive your agents from Telegram, Lark (Feishu), and WeChat: create tasks, approve permissions, and get live updates -- **[Automations](https://docs.codeg.app/guide/automations)** — save a fully-configured composer as a reusable automation that runs headlessly, on a cron schedule or on demand — starting a session, or filing a to-do for you to review later -- **[Office Documents](https://docs.codeg.app/guide/office)** — create, analyze, proofread, and edit `.docx` / `.xlsx` / `.pptx` through the bundled `officecli`, with live in-tab preview -- **[Scientific Research](https://docs.codeg.app/guide/research)** — bundled research skills (hypothesis generation, experimental design, statistics, visualization, critical appraisal, literature search) any agent can invoke -- **[Project Boot](https://docs.codeg.app/guide/project-boot)** — scaffold new projects visually, with live preview, then open them straight in the workspace -- **[MCP](https://docs.codeg.app/guide/mcp) & [Skills](https://docs.codeg.app/guide/skills)** — local server scan plus registry search/install, and skills managed at global or project scope -- **[Make it yours](https://docs.codeg.app/reference/settings/appearance)** — recolor any of the twelve themes token by token, set the corner radius app-wide, import and export themes as shadcn JSON, or write your own CSS -- **[Desktop, Server & Docker](https://docs.codeg.app/getting-started/deployment)** — a native desktop app, a standalone `codeg-server` you reach from any browser, or `docker compose up` -- **[iPhone, iPad & Android](https://docs.codeg.app/getting-started/installation#mobile-apps)** — native mobile clients that connect to your desktop or server: start sessions, stream replies, approve permissions, and browse projects from anywhere +Not on the list? Pick any agent from the public ACP registry or paste its distribution JSON — Codeg installs it, checks that it launches, and treats it like a built-in. Runtime requirements and where each agent keeps its sessions: [Supported Agents](https://docs.codeg.app/guide/supported-agents). -## 📦 Install & Run +## 📦 Install -**Desktop** — download the installer for macOS, Windows, or Linux from [Releases](https://github.com/xintaofei/codeg/releases), then follow [Installation](https://docs.codeg.app/getting-started/installation). +**Desktop** — installers for macOS, Windows, and Linux are on [Releases](https://github.com/spacering-net/codeg/releases/latest); setup steps in [Installation](https://docs.codeg.app/getting-started/installation). **Server** — run Codeg headless and reach it from any browser. On Linux or macOS: ```bash -curl -fsSL https://raw.githubusercontent.com/xintaofei/codeg/main/install.sh | bash +curl -fsSL https://raw.githubusercontent.com/spacering-net/codeg/main/install.sh | bash CODEG_STATIC_DIR=/usr/local/share/codeg/web codeg-server ``` On Windows, in PowerShell: ```powershell -irm https://raw.githubusercontent.com/xintaofei/codeg/main/install.ps1 | iex -$env:CODEG_STATIC_DIR="$env:LOCALAPPDATA\codeg\web"; codeg-server +irm https://raw.githubusercontent.com/spacering-net/codeg/main/install.ps1 | iex +$env:CODEG_STATIC_DIR="$env:LOCALAPPDATA\codeg-server\web"; codeg-server ``` **Docker** — the same server, in one container: ```bash -docker run -d -p 3080:3080 -v codeg-data:/data ghcr.io/xintaofei/codeg:latest +docker run -d -p 3080:3080 -v codeg-data:/data ghcr.io/spacering-net/codeg:latest ``` +Either way, open `http://:3080` in a browser and enter the access token the server prints when it starts (`docker logs` shows it for the container), or set `CODEG_TOKEN` to choose your own. + **Mobile** — install the [iOS app](https://apps.apple.com/app/codeg-client/id6785199071) or the [Android APK](https://github.com/xintaofei/codeg-android/releases/latest), then point it at the **Web Service** of your desktop app or at your own `codeg-server`: URL, token, done. Pairing steps in [Mobile apps](https://docs.codeg.app/getting-started/installation#mobile-apps). -Compose, prebuilt binaries, source builds, and in-place updates are covered in [Deployment](https://docs.codeg.app/getting-started/deployment); environment variables in [Configuration](https://docs.codeg.app/getting-started/configuration). Building Codeg itself: [Development](https://docs.codeg.app/reference/development) and [Architecture](https://docs.codeg.app/reference/architecture). +Compose, prebuilt binaries, source builds, and in-place updates are covered in [Deployment](https://docs.codeg.app/getting-started/deployment); environment variables in [Configuration](https://docs.codeg.app/getting-started/configuration). + +## 👥 Community & Support + +- **WeChat** — scan the QR code to join our group for discussions, feedback, and updates: -## 🔒 Privacy & Security + + + WeChat + -- Local-first by default for parsing, storage, and project operations — network access happens only on user-triggered actions -- Web and server modes are guarded by token-based authentication -- System proxy support for enterprise environments +- **Issues** — found a bug or missing a feature? [Open an issue](https://github.com/spacering-net/codeg/issues). +- **Privacy** — local-first: parsing, storage, and project operations stay on your machine, and web and server modes are guarded by token authentication. Details in [Privacy & Security](https://docs.codeg.app/reference/privacy). +- **LinuxDO** — thanks to the [LinuxDO](https://linux.do) community for their support. +- **Show support** — [star the repo](https://github.com/spacering-net/codeg) to follow along. -Details in [Privacy & Security](https://docs.codeg.app/reference/privacy). +## 🤝 Contributing -## 👥 Community +Issues and pull requests are welcome. To build Codeg yourself, start with [Development](https://docs.codeg.app/reference/development) and [Architecture](https://docs.codeg.app/reference/architecture). -- Scan the QR code below to join our WeChat group for discussions, feedback, and updates + + Codeg contributors + -WeChat -WeChat +## ⭐ Star History -- Thanks to the [LinuxDO](https://linux.do) community for their support + + + + + Star History Chart + + ## 🙏 Acknowledgments @@ -222,6 +363,8 @@ Details in [Privacy & Security](https://docs.codeg.app/reference/privacy). - [Superpowers](https://github.com/obra/superpowers) — powers Codeg's expert skills module - [OfficeCLI](https://github.com/iOfficeAI/OfficeCLI) — powers Codeg's Office documents workflow - [scientific-agent-skills](https://github.com/K-Dense-AI/scientific-agent-skills) — powers Codeg's Scientific Research skills (MIT-licensed subset) +- [json-render](https://github.com/vercel-labs/json-render) — powers Codeg's UI Render cards, tables, and charts +- [cua-driver](https://github.com/trycua/cua) — powers Codeg's Computer Use ## 📜 License diff --git a/browser-agent/src/act.test.ts b/browser-agent/src/act.test.ts index 77763976cd..aff7f729df 100644 --- a/browser-agent/src/act.test.ts +++ b/browser-agent/src/act.test.ts @@ -1,4 +1,4 @@ -import { afterEach, describe, expect, it, vi } from "vitest" +import { afterEach, describe, expect, it, vi, type Mock } from "vitest" import { clickAt, @@ -761,7 +761,7 @@ function watchScrolling(el: Element) { } /** The `top` of every scroll asked for, in order. */ -function tops(spy: ReturnType): number[] { +function tops(spy: Mock): number[] { return spy.mock.calls.map((call) => (call[0] as ScrollToOptions).top!) } diff --git a/docs/CLIENT-PRIVACY.md b/docs/CLIENT-PRIVACY.md index 9e6f67ec42..ab51b817fa 100644 --- a/docs/CLIENT-PRIVACY.md +++ b/docs/CLIENT-PRIVACY.md @@ -10,4 +10,4 @@ The app may connect to user-configured third-party services, such as code hostin If you contact the developer for support, information you provide in that communication may be used to respond to your request. -Contact: https://github.com/xintaofei/codeg/issues +Contact: https://github.com/spacering-net/codeg/issues diff --git a/docs/agents/zcode.md b/docs/agents/zcode.md new file mode 100644 index 0000000000..36a7334a22 --- /dev/null +++ b/docs/agents/zcode.md @@ -0,0 +1,32 @@ +# ZCode + +Codeg connects to [official ZCode](https://github.com/zai-org/ZCode) through the community [zcode-acp-server](https://github.com/william0wang/zcode-acp) bridge. The bundled registry pins the bridge to `0.72.0`. + +## Setup + +1. Install official ZCode and sign in there. +2. Install Node.js 22 or newer with `node:sqlite` available. +3. In Codeg Agent Settings, select ZCode and install its ACP adapter. The adapter installation does not install or update official ZCode. +4. Check the preflight results, then select ZCode in a workspace. + +Codeg discovers the official desktop bundle or the `zcode` command on PATH, and uses the first Node.js on PATH or in a Node version manager that can load `node:sqlite`. For a nonstandard installation, set `ZCODE_BIN` to the official JavaScript entry (`resources/glm/zcode.cjs` inside the ZCode installation) and `ZCODE_NODE` to a Node executable in the agent environment editor. Use absolute paths or command names on PATH; a relative path is refused because each workspace would resolve it differently. Paths with spaces are supported; do not put extra shell quotes around values. An invalid explicit override fails instead of selecting another installation. npm and pnpm launchers and Unix links are resolved to their JavaScript target, for both the CLI and the bridge. + +Codeg runs the bridge and the official CLI on that same Node. The bridge would otherwise move itself to Bun 1.4 or newer when it finds one; set `ZCODE_ACP_RUNTIME` in the agent environment to choose its runtime yourself. + +The bridge reuses ZCode's existing authentication. Codeg does not copy credentials or create legacy ZCode configuration files. Sign-in errors should be resolved in official ZCode; the agent stderr diagnostics show startup failures. + +ZCode Start Plan accounts cannot run through the bridge. Their model requests need a captcha that only the ZCode desktop app can solve, so each prompt fails with a message saying so. GLM Coding Plan providers are not affected. + +## Sessions and tools + +A new session explicitly confirms Build mode before sending its first prompt. A valid saved mode, including Yolo, takes precedence. Confirming the mode makes the bridge create the ZCode backend session when the conversation connects rather than at its first prompt. Existing sessions use the normal restore and preference flow. Model and thought selectors follow ACP configuration updates rather than a hardcoded model list. + +The bridge writes a disabled sandbox template to `.zcode/acp/sandbox.json` in each workspace it runs in. + +Codeg records its own ACP transcripts for ZCode, including messages, thoughts, tools and usage. These transcripts support history and reconnecting to sessions created in Codeg. Existing custom ZCode entries keep their registration, launch configuration and history; the built-in option records its history separately. This integration does not scan ZCode's native SQLite sessions. + +Manage stdio MCP servers through Codeg's MCP settings and assign them to ZCode. The configuration is stored in Codeg's data directory and forwarded when creating or restoring a session; it is not written into official ZCode's provider or credential files. When multi-agent delegation is enabled, Codeg injects its per-launch `codeg-mcp` companion using the same path. + +## Current scope + +The first integration covers ACP conversations, permission requests, cancellation, Codeg transcript history, and stdio MCP. Message-level fork is disabled while the bridge's fork response and checkpoint behavior are incompatible with Codeg's typed flow. Native history import, a ZCode provider/configuration panel, HTTP MCP, attachments, native Goal/queue extensions and remote hub are outside this phase. Runtime validation with official ZCode has been performed on Windows, with bridge 0.69.2; macOS and Linux discovery paths still need platform testing. diff --git a/docs/cli.md b/docs/cli.md new file mode 100644 index 0000000000..b6e2268d8a --- /dev/null +++ b/docs/cli.md @@ -0,0 +1,819 @@ +# Command line: `codeg-cli` + +`codeg-cli` runs one prompt through a Codeg that is already running — the +desktop app or `codeg-server` — and prints the agent's reply. No window opens. +The run is an ordinary conversation: it is listed in Codeg with the others, +where you can read it, answer what the agent asks, and carry it on. A terminal +mark sets it apart, and the Recent section's filter can show only those. + +```bash +codeg-cli -a claude_code -p "Review the latest commit" +git diff main | codeg-cli -a codex -p "Review this diff" -o review.md +codeg-cli --assistant code-reviewer "Review the latest commit" +``` + +- [Install](#install) +- [Which Codeg it talks to](#which-codeg-it-talks-to) +- [Commands](#commands) +- [Several agents at once](#several-agents-at-once) +- [Detached runs](#detached-runs) +- [Permissions](#permissions) +- [Output](#output) +- [Exit codes](#exit-codes) +- [Error codes](#error-codes) +- [Events](#events) +- [In CI](#in-ci) +- [Security](#security) + +## Install + +`codeg-cli` comes with every package: the desktop app, `codeg-server`, and the +Docker image. + +| Package | `codeg-cli` | On PATH | +| --- | --- | --- | +| Linux `.deb` / `.rpm` | `/usr/bin/codeg-cli` | Yes | +| macOS app | `codeg.app/Contents/MacOS/codeg-cli` | Install command-line tool, below | +| Windows installer | `%LOCALAPPDATA%\codeg\bin\codeg-cli.exe` | Install command-line tool, below | +| AppImage | Inside the image, copied out at every start | Install command-line tool, below | +| `install.sh` / `install.ps1` | Next to `codeg-server` | Yes | +| Docker image | `/usr/local/bin/codeg-cli` | Yes | + +**Install command-line tool.** In the desktop app, Settings → System → +Command-line access has a button that puts `codeg-cli` on your PATH: on macOS +a link in `/usr/local/bin` (macOS asks for an administrator's password when +the folder needs one), on Windows the installer's `bin` folder on your PATH, +for an AppImage a link in `~/.local/bin`. A `codeg-cli` already there that is +not the app's — the one `install.sh` puts there with `codeg-server`, say — is +left alone: the two are the same program. The steps below do the same by +hand. + +**In Codeg's own terminals and agents**, the app's own `codeg-cli` comes first +on PATH, and `CODEG_CLI` names it: a `codeg-cli` typed there is always the +app's release. A login shell may put its own PATH first; `"$CODEG_CLI"` is the +app's whatever the PATH. A development build calls its command +`codeg-cli-dev`, so it never takes the place of an installed release. + +**macOS.** Link the app's copy into a folder on PATH: + +```bash +sudo mkdir -p /usr/local/bin +sudo ln -s /Applications/codeg.app/Contents/MacOS/codeg-cli /usr/local/bin/codeg-cli +``` + +Without `-f`, `ln` does not replace a `codeg-cli` that is already there — one +`install.sh` put there with `codeg-server`, say. The two are the same program: +keep either. + +**Windows.** The installer puts a copy of `codeg-cli.exe` in a `bin` folder of +its own, so that PATH gains this one program and not `codeg.exe` or the +uninstaller beside it. Add that folder to your PATH once, then open a new +terminal: + +```powershell +$bin = Join-Path $env:LOCALAPPDATA "codeg\bin" +$path = [Environment]::GetEnvironmentVariable("Path", "User") +[Environment]::SetEnvironmentVariable("Path", "$path;$bin", "User") +``` + +If you installed Codeg in another folder, use its `bin` folder. `codeg-cli.exe` +is a console program: it behaves the same in PowerShell, `cmd` and Git Bash, +and a prompt reaches the agent exactly as you wrote it. + +**AppImage.** The release has one for x64; `tauri build` makes one for other +machines. Its files are only there while it runs, so at every start the app +copies its `codeg-cli` to `/cli/bin/codeg-cli` — +`~/.local/share/app.codeg` by default — over the copy it wrote before, never +over a file you changed; Install command-line tool links that copy into +`~/.local/bin`. Until the newer app first starts, the older copy keeps working +with it. Or take it out of the image yourself: + +```bash +./codeg.AppImage --appimage-extract usr/bin/codeg-cli +mkdir -p ~/.local/bin +mv squashfs-root/usr/bin/codeg-cli ~/.local/bin/ +``` + +**`install.sh` and `install.ps1`** put `codeg-cli` next to `codeg-server` when +the release has it, and leave alone a desktop app's `codeg-cli` they find there +— in its install, or the ones it keeps in its data directory for its own +terminals. +From 0.38.0 on, the server's in-place update brings the matching `codeg-cli` +with it. The update from 0.37.0 does not, as 0.37.0 knows nothing of +`codeg-cli`: take it from the server package on the release page and put it +next to `codeg-server`. Replacing `codeg-cli` never stops one that is running, +but a run it waits on in that server ends when the upgrade stops the server. + +**Docker.** Run it in the container: it finds the server there by itself. The +workspace is a path in the container, e.g. under the `/projects` mount of +`docker-compose.yml`: + +```bash +docker compose exec codeg codeg-cli -w /projects/app -a claude_code -p "Review the latest commit" +``` + +### Turning it on and off + +Settings → System → **Command-line access**, on by default, shows the endpoint +file this Codeg publishes and a command to try. Switched off, no `codeg-cli` on +this computer can reach this Codeg. `--url` to a server, with the server's +token, does not depend on it (see [Security](#security)). + +## Which Codeg it talks to + +Every running Codeg, desktop or server, listens on a loopback port of its own +for `codeg-cli`, and says where in a private file, +`/cli/endpoint-.json`. `codeg-cli` looks, in this order: + +1. `--url` with `--token` or `--token-file`: a Codeg over HTTP(S), usually a + `codeg-server` on another machine. +2. `--data-dir DIR`: the Codeg that keeps its data in `DIR`. +3. `CODEG_CLI_ENDPOINT_FILE`: set by Codeg in its own terminals and for its + agents, so that `codeg-cli` typed there reaches the Codeg it runs in — + whatever your shell profile exports. +4. `CODEG_URL` with `CODEG_TOKEN`. +5. `CODEG_DATA_DIR`. +6. The default data directories of the desktop app (`app.codeg`) and of + `codeg-server` (`codeg`), in the platform's data directory: + `~/Library/Application Support` on macOS, `~/.local/share` on Linux, + `%APPDATA%` on Windows. + +Only the first one given is used. If it fails — that Codeg is not running, or +cannot prove it is the one in the file — `codeg-cli` stops and says that +nothing was sent. It never falls back to another Codeg: a conversation there +would end up in a database nobody is looking at. In a data directory, a file +that leads to no Codeg that answers and proves itself is skipped. When several +Codegs answer +there, the desktop app wins, then a debug build of it, then a server, the most +recently started first. `--runtime desktop|server` picks the kind. + +`codeg-cli status` lists everything it looked at, what each turned out to be, +and which one a run would use: + +| State | Meaning | +| --- | --- | +| `ready` | It answered, and proved it is the Codeg in the file | +| `stale` | The file is there, its process is gone | +| `unreachable` | Its process is alive, but nothing answered | +| `unverified` | Something answered, without the proof only that Codeg can give | +| `access_denied` | The operating system refused the connection — a sandbox, most likely | +| `incompatible` | It speaks another CLI API, or cannot do what this command needs | + +`codeg-cli open` starts the desktop app when no desktop answers, and waits +until one does (`--wait`, 60 seconds by default). + +**In a sandbox.** An agent's shell often may not use the network at all, +loopback included. `codeg-cli` then fails with `error_runtime_access_denied`: +allow the command local network access, or run it outside the sandbox. +Restarting Codeg does not help. An agent in Codeg is better off with Codeg's +own delegation tools, which do not go through its shell. + +## Commands + +```text +codeg-cli [GLOBAL OPTIONS] [run] [RUN OPTIONS] [PROMPT] +codeg-cli agents [--json] +codeg-cli agents install SLUG [--version VERSION] [--wait DUR] [--json] +codeg-cli assistants [--json] +codeg-cli status [--json] +codeg-cli open [--wait DUR] [--json] +codeg-cli result RUN [--wait DUR] [--output-format FORMAT] [-o FILE] +codeg-cli cancel RUN [--json] +codeg-cli automations [list] [--json] +codeg-cli automations run ID [--wait DUR] [--json] +``` + +No command means `run`: `codeg-cli "review it"` and `codeg-cli run "review it"` +are the same run. A first word that names a command is that command. To send +`status` as a prompt, write `codeg-cli run status` or `codeg-cli -p status`. +Run options go after `run`, or with no command at all: written before `run`, +or with another command, they are a usage error rather than quietly dropped. + +| Command | | +| --- | --- | +| `run` | Run one prompt (below) | +| `agents` | The agents this Codeg knows, whether each is enabled and installed, and how to install one that is not | +| `agents install` | Install an agent as Codeg's settings do. See [Installing agents](#installing-agents) | +| `assistants` | The assistants to run with `--assistant` | +| `status` | The runtimes this command can reach, and which it would use. Exit code 0 when it would use one | +| `open` | Start the desktop app unless it is running, and wait until it answers. This computer's desktop app only | +| `result` | The result of a run: one started with `--detach`, or one whose `codeg-cli` lost its Codeg. See [Detached runs](#detached-runs) | +| `cancel` | Cancel a run | +| `automations` | The automations saved in Codeg; `automations run ID` runs one now. See [Automations](#automations) | + +Global options: + +| Option | | +| --- | --- | +| `--url URL` | A Codeg over HTTP(S), e.g. `https://host:3080` | +| `--token TOKEN`, `--token-file FILE` | The token for `--url`: the server's `CODEG_TOKEN`. Without either, `CODEG_TOKEN` from the environment | +| `--data-dir DIR` | The Codeg that keeps its data in `DIR`. With `--standalone`, the data directory of the command's own server | +| `--standalone` | Start a `codeg-server` for this command alone, and stop it when the command ends. See [In CI](#in-ci) | +| `--runtime desktop\|server` | The kind to use when several answer | +| `-q`, `--quiet` | Errors only: no progress, no heartbeat | +| `-v`, `--verbose` | Progress on stderr even when it is not a terminal, and diagnostics | +| `--no-color` | Plain progress lines | + +### `run` + +| Option | | +| --- | --- | +| `-p`, `--prompt TEXT` | The prompt. `-` reads it from stdin. It can also be the last argument | +| `-w`, `--workspace DIR` (`--cd`, `-C`) | Where the agent works. By default the current directory; a relative path is taken from it. With `--url`, a path on the server's machine: required, and sent as written | +| `-a`, `--agent SLUG` | The agent: `claude_code`, `codex`, … (`codeg-cli agents`). Again for another run: see [Several agents at once](#several-agents-at-once) | +| `-A`, `--assistant NAME\|ID` | Run as an assistant: its agent, settings and instructions (`codeg-cli assistants`). A number is an id before it is a name | +| `--max-parallel N` | With several `-a` and `-A`: how many run at once, 4 by default. The rest wait their turn | +| `-m`, `--model VALUE` | The model, as the agent lists it | +| `--effort LEVEL` | The thinking effort, as the agent lists it | +| `--mode ID` | The session mode, e.g. `plan` or `acceptEdits` | +| `-c`, `--config ID=VALUE` | Another of the agent's session options. Repeatable | +| `--permissions POLICY` | What to answer when the agent asks for a permission: `deny` (the default), `reads`, `allow`, `fail` or `wait`. See [Permissions](#permissions) | +| `--output-format FORMAT` (`--format`) | `text` (the default), `json` or `stream-json`. See [Output](#output) | +| `-o`, `--output FILE` | Also write the final reply to `FILE` | +| `--output-schema FILE` | Have the agent hand in its result as JSON matching the JSON Schema in `FILE`. See [Structured output](#structured-output) | +| `--title TEXT` | The conversation's title. The agent's own titles do not replace it | +| `--timeout DUR` | Give up after this long — `90s`, `30m`, `2h` — counted from the start of the command. The run is cancelled in Codeg too, even if this command is gone by then | +| `--open` | Open the conversation in the desktop app once it exists, and bring it to the front. Desktop app only | +| `--no-stdin` | Never read stdin | +| `--detach` | Return once the agent has the prompt, printing the run's id. See [Detached runs](#detached-runs) | +| `--worktree`, `--worktree=NAME` | Run in a new git worktree of the workspace's repository, on branch `cli/NAME`. See below | + +With neither `-a` nor `-A`, the run uses the workspace's default agent, when +it has one. + +**stdin.** Piped stdin is context for the prompt: +`git diff | codeg-cli -p "review this"` sends the prompt, then the diff. +Without a prompt, stdin is the prompt. A terminal or an empty device such as +`/dev/null` is never read, so a CI job that leaves stdin open does not hang. +The prompt and stdin may be up to 10 MiB together. + +**Model, effort, mode, options.** `--model`, `--effort`, `--mode` and `-c` are +checked against what the agent offers once it has started, and applied before +the prompt is sent. A value the agent does not offer ends the run with exit +code 2, and the message lists the values it does offer; one it offers but does +not take ends it the same way. The choices are for this run only: the agent's +defaults in Codeg stay as they are. +`--effort` is not accepted for Kiro, whose answer cannot confirm the change. + +**The workspace** becomes a folder in Codeg if it is not one yet. It is not +opened in the sidebar. + +**A worktree of its own.** `--worktree` gives the run a new git worktree next +to the repository, on a new branch from its HEAD: `cli/NAME` with +`--worktree=NAME`, or `cli/` and the start of the run's id. The agent works +there, in the same subdirectory when the workspace is below the top of the +repository, and the worktree stays when the run is done, for you to review, +merge or delete in Codeg. It shows under the repository's folder when that +folder is open in Codeg. `init` and the result name it: +`"worktree": {"path": …, "branch": "cli/…"}`. A name already taken gets more +of the run's id after it. A launch that fails before its conversation exists +takes its worktree and branch away again: nothing ran in them. The name only +goes after `=`: `--worktree review` is an unnamed worktree, and the prompt +`review`. `--worktree` needs git 2.33 or later. + +**Interrupting.** Ctrl-C (SIGINT) or SIGTERM cancels the run in Codeg and +waits up to 10 seconds for it to wind up. A second one quits within two +seconds. The exit code is 130 or 143, also when the signal comes before the +run has started. + +**Losing Codeg.** When Codeg stops answering for 30 seconds, `codeg-cli` gives +up with exit code 4. The run may still be going: the result has its link. + +## Installing agents + +`codeg-cli agents install claude_code` installs an agent the way Settings → +Agents does — its npm package, or its download — at the version this Codeg +pins, or at `--version`. It is installed where Codeg runs: with `--url`, on +the server. An install can take minutes: it goes on in Codeg whatever becomes +of the command, and asking again while it runs follows the same install. +`--wait` stops waiting after that long, with exit code 6. Kiro, which comes +with its own installer, is not installed this way. + +## Automations + +`codeg-cli automations` lists the automations saved in Codeg, and +`codeg-cli automations run ID` runs one now, as its Run now button does. It +returns once the run is under way and prints its id; `--wait DUR` waits that +long for it to end instead, then prints the agent's reply and exits 0 when +the run succeeded, 1 when it did not, and 6 when it has not ended yet. An +automation that queues a work task ends when the task is queued: `task_id` +names it, and the task's own work is no part of the run. `--json` prints the +run: + +```json +{"v": 1, "type": "automation_run", "automation_id": 3, "run_id": 41, "status": "succeeded", "conversation_id": 214, "link": "codeg://session/214", "summary": "…", "error": null} +``` + +Of the Codegs that share a data directory, only the first to start runs +automations. `run` on another one fails with `automations_elsewhere`: pick the +right one with `--runtime`. Waiting never cancels a run. + +## Several agents at once + +Each `-a` and `-A` is a run of the prompt of its own, numbered from 1 in the +order written; the same one twice is two runs to compare: + +```bash +git diff main | codeg-cli -a claude_code -a codex -A reviewer -p "Review this diff" -o review.md +``` + +- The prompt, stdin included, is read once, and the runs share `--timeout`. + At most `--max-parallel` run at a time. Ctrl-C or SIGTERM cancels them all. +- `text` prints each reply under a line naming its run: `== #2 codex (8d0c7c2e) ==`. + `json` prints an array of [result objects](#the-result-object), in the same + order, each with its `target_index`. `stream-json` prints the runs' events as + they come, told apart by `run_id`, and each run's result as it ends. +- `-o review.md` writes one file per run: `review.1-claude_code.md`, + `review.2-codex.md`, … A character a file name cannot hold becomes `_`. +- The exit code is the first failed run's, in the order written; 0 when every + run succeeded. +- They all work in the same directory: under `--permissions allow`, say, give + each its own with `--worktree`. `--worktree=NAME` names them `NAME-1`, + `NAME-2`, … +- With `--detach`, `text` prints one run id per line, in order (an empty line + for one that did not start), and `json` an array of `init` events. +- With `--output-schema`, `text` prints one line of JSON per run instead: see + [Structured output](#structured-output). + +## Detached runs + +`--detach` returns as soon as the agent has the prompt and prints the run's +id; the run goes on in Codeg. `result` collects it, `cancel` stops it: + +```bash +run=$(codeg-cli --detach -a codex -p "Review the latest commit") +# … other steps … +codeg-cli result "$run" --wait 30m -o review.md +``` + +- `--detach` prints the id alone on stdout in `text`, and the run's `init` + event in both JSON formats. It does not go with `-o`: the reply is not + there yet. `--timeout` still counts: Codeg cancels the run when it runs out, + with no `codeg-cli` left to wait for it. +- `result RUN` prints the run's result as `run` would have — the reply in + `text`, the [result object](#the-result-object) in JSON — writes `-o FILE`, + and exits with the run's [exit code](#exit-codes). Without `--wait` it looks + once; with it, it waits that long for the run to finish. A run that has not + finished by then makes it exit with code 6 and, in JSON, print a status + instead of a result: + + ```json + {"v": 1, "type": "status", "run_id": "8d0c7c2e-…", "state": "running", "subtype": "still_running", "conversation_id": 214, "link": "codeg://session/214"} + ``` + + `result` never cancels a run, not even when interrupted. +- `cancel RUN` cancels the run, and says whether it had already finished. +- A run is named by its id or by at least 8 characters from its start, as + long as no other run starts the same way. +- Codeg keeps a finished run's result for 30 minutes, in memory: a Codeg that + restarted no longer has it. The conversation itself stays in Codeg. + +The same `result` collects a run whose `codeg-cli` gave up on its Codeg — +exit code 4, `runtime_lost` — once that Codeg answers again. + +## Permissions + +No one is watching a headless run, so `--permissions` decides what Codeg +answers when the agent asks — to run a command, edit a file, use a tool. It +answers once, never "always": an "always" answer writes a lasting rule into +your agent's own settings. + +| Policy | A permission request | A question the agent asks | +| --- | --- | --- | +| `deny` (default) | Refused, this once | Declined | +| `reads` | Allowed once if it only reads or searches, refused otherwise | Declined | +| `allow` | Allowed, this once | Declined | +| `fail` | Refused, and the run ends with exit code 5 | Declined | +| `wait` | Left for you to answer in Codeg | Left for you | + +When the agent offers no one-time answer of the kind needed, Codeg does not +pick a lasting one instead: `allow` refuses once, and with no one-time refusal +either, the run ends with exit code 5. A plan the agent wants approved (Grok) +is approved under `allow`, left for you under `wait`, and abandoned otherwise. +Sub-agents the run delegates to answer by the same policy. + +Every request, and what became of it, is an event. The refused ones are listed +in the result's `permission_denials`, and under `deny` `codeg-cli` says on +stderr how many there were. + +The agent's own mode is another matter: `--mode bypassPermissions` (Claude +Code) decides whether the agent asks at all, `--permissions` what Codeg answers +when it does. + +Under `wait`, the conversation's link goes to stderr. Answer there — in the +window, or from a chat channel. `--open` brings it to the front. When +`--timeout` runs out while requests are still waiting, the result lists them +in `pending`. + +**Runs an agent starts.** An agent can run `codeg-cli` too. A run started from +inside a `codeg-cli` run never gets a wider policy than that run: a +`--permissions allow` under a `deny` run becomes `deny`, and a notice says so. +Such a run cannot start another: runs nest one level deep. This guards against +mistakes, not against an agent set on getting around it. A run started from a +conversation you drive in the window keeps the policy it asks for: its command +already went through your agent's own permission check. + +## Output + +| `--output-format` | stdout | stderr | +| --- | --- | --- | +| `text` (default) | The final reply, nothing else. With `--output-schema`, the result's JSON on one line | Progress — tool calls, permission decisions — when stderr is a terminal or with `-v`; errors | +| `json` | One [result object](#the-result-object), at the end; with several `-a` and `-A`, an array of them | Errors and hints | +| `stream-json` | One [event](#events) per line: `init` first, the result object last | Errors and hints | + +In both JSON formats stdout carries JSON only. Every exit after the arguments +were read prints a result object — a Codeg that could not be reached, a +timeout and an interrupt included — with `is_error: true` and the reason in +`subtype` and `error`. Only arguments `codeg-cli` cannot parse print nothing +but a message on stderr, with exit code 2. Scripts should look at both the +exit code and `is_error`. + +**Heartbeat.** When stderr is not a terminal and nothing was written there for +a minute, a line goes there: + +```text +codeg-cli: still running (12m so far, 31 tool calls) +``` + +A CI system that kills a job gone silent — CircleCI does after ten minutes by +default — then leaves a long review alone. `-q` turns it off. + +**`-o FILE`** writes the final reply to `FILE` too, all at once: a reader +never sees half of it. A run that failed after replying writes its reply all +the same; the exit code says how it went. Without a reply the file is left as +it was. A reply that cannot be written makes a successful run's result an +error (`output_unwritable`, exit code 1). With `--output-schema` the file +holds the result's JSON instead, and is left as it was without one. + +## Structured output + +`--output-schema FILE` asks for the run's result as JSON matching the JSON +Schema in `FILE`, as Claude Code's `--json-schema` and Codex's +`--output-schema` do: + +```bash +cat > verdict.json <<'EOF' +{ + "type": "object", + "properties": { + "verdict": {"enum": ["pass", "fail"]}, + "issues": {"type": "array", "items": {"type": "string"}} + }, + "required": ["verdict", "issues"], + "additionalProperties": false +} +EOF +git show HEAD | codeg-cli -a claude_code --output-schema verdict.json \ + -p "Review this commit" > result.json +jq -r .verdict result.json +``` + +The agent hands the result in with a tool Codeg gives it, `submit_result`, +whose input schema is yours. Each result is checked against the schema, and +one that does not match is refused with where it goes wrong, so the agent can +fix it and try again; after five refusals no more are taken. The last result +accepted is the run's. An agent Codeg cannot give the tool to (Pi, Cline, +OpenClaw, a custom agent with MCP turned off) is shown the schema instead and +asked to reply with the JSON; so is any agent read that way when it ends its +turn without calling the tool. Its reply is then the result when the whole +reply is JSON, or when it has one ```` ```json ```` block, checked against the +schema the same way. + +- `text` prints the result's JSON on one line, and `-o FILE` writes it, with a + line end. In the JSON formats it is the result object's `structured_output`, + where Claude Code puts it, so a `jq '.structured_output'` reads either; + `result` keeps the agent's reply. `codeg-cli result` gives it the same way, + for a run started with `--detach`. +- With several `-a` and `-A` each run hands in its own. `text` prints one line + per run, in the order written: its result's JSON, or `null` for one without, + and each run's `== #n ==` line goes to stderr instead, so stdout holds JSON + alone. `-o` writes a file per run. +- A turn that ends without a result that matches fails with exit code 7, + `error_max_structured_output_retries` (the name Claude Code gives it), and + `output_schema_unmet` says why. stdout then stays empty in `text`, and `-o` + leaves its file as it was: nothing but that JSON ever goes there. A run that + failed for another reason, a timeout say, keeps its own exit code. +- Each result that does not match is a `notice` event. +- `submit_result` needs no permission. An agent that asks for one before it + calls the tool — Claude Code asks before any MCP tool — is answered "yes, + once" by Codeg whatever `--permissions` says: the tool runs and reads + nothing, it only hands the run its result. +- The schema is a JSON object of at most 64 KiB, and its root takes objects + only — `"type": "object"` — since the result is handed in as a tool's + arguments. Put a list or a single value in a property. `$schema` picks the + draft: 2020-12 (the default), 2019-09, 7, 6 or 4; `format` is checked as the + draft says, in draft 7 and earlier only. A `$ref` is followed within the + schema only: nothing it names elsewhere, a file or a URL, is read. A schema + that is not one is refused before anything starts, with exit code 2 + (`bad_output_schema`). + +## Exit codes + +| Code | `subtype` | | +| --- | --- | --- | +| 0 | `success` | The turn ended normally | +| 1 | `error_during_execution` | The run failed: the agent reported an error, refused, ran out of tokens or exited; or it is not installed, or not enabled | +| 2 | `error_usage` | The arguments; an agent, assistant, model, effort, mode or option that does not exist or did not take; a workspace that does not exist; an empty or too large prompt | +| 3 | `error_timeout` | `--timeout` ran out. The run was cancelled | +| 4 | `error_runtime_unavailable` | No Codeg to talk to: none is running, its proof or the token failed, it went away during the run, or the run's result is past its 30-minute retention | +| 4 | `error_runtime_access_denied` | The operating system refused the connection, a sandbox most likely | +| 4 | `error_runtime_incompatible` | That Codeg speaks another CLI API, or is too old for what was asked, `--effort` say: update whichever is older | +| 5 | `error_permission_required` | The agent needed a permission the policy does not give: `--permissions fail`, or a request with no one-time answer | +| 6 | `still_running` | `result`, `automations run` or `agents install`: what it waited for had not ended within `--wait`. It was not cancelled. Not a result: see [Detached runs](#detached-runs) | +| 7 | `error_max_structured_output_retries` | `--output-schema`: the turn ended without a result that matches the schema. See [Structured output](#structured-output) | +| 130 | `error_interrupted` | SIGINT (Ctrl-C). The run was cancelled | +| 143 | `error_interrupted` | SIGTERM, which a CI system sends a job it cancels. The run was cancelled | + +Exit codes and `subtype`s are only ever added. A retired one is never given a +new meaning. + +## Error codes + +When `is_error` is true, the result's `error` says what went wrong: + +```json +{"code": "unknown_agent", "message": "\"claud\" is not an agent", "next_steps": ["codeg-cli agents"]} +``` + +`code` is stable, for scripts. `message` is for people, and its wording may +change. `next_steps` are commands or actions to try, when there are any. + +| `code` | `subtype` | | +| --- | --- | --- | +| `no_prompt` | `error_usage` | No prompt, and stdin is a terminal or an empty device, or `--no-stdin` keeps it from being read | +| `empty_prompt` | `error_usage` | The prompt is empty | +| `prompt_too_large` | `error_usage` | The prompt and stdin are over 10 MiB together | +| `stdin_unreadable`, `stdin_not_utf8` | `error_usage` | stdin cannot be read, or is not UTF-8 text | +| `token_missing` | `error_usage` | `--url` or `CODEG_URL` without a token | +| `token_file_unreadable` | `error_usage` | `--token-file` cannot be read | +| `workspace_required` | `error_usage` | `--url` needs `-w` | +| `no_cwd`, `bad_workspace` | `error_usage` | The workspace cannot be made an absolute path | +| `workspace_not_absolute`, `workspace_not_found` | `error_usage` | On Codeg's machine, the workspace is not an absolute path to a directory | +| `unknown_agent` | `error_usage` | No such agent | +| `agent_is_an_assistant` | `error_usage` | `--agent` was given an assistant: `next_steps` has the `--assistant` to write | +| `unknown_assistant` | `error_usage` | No enabled assistant has that name or id | +| `agent_and_assistant` | `error_usage` | Both `--agent` and `--assistant`: an assistant decides its agent | +| `no_agent` | `error_usage` | Neither, and the workspace has no default agent | +| `option_unavailable` | `error_usage` | The agent has nothing `--model`, `--effort` or `--mode` could set | +| `invalid_value`, `unknown_mode`, `unknown_config_option` | `error_usage` | A value or option the agent does not offer. The message lists what it does | +| `selection_rewritten`, `selection_refused`, `selection_not_applied`, `selection_failed`, `selection_unconfirmed` | `error_usage` | The agent did not take a `--model`, `--effort`, `--mode` or `-c` choice as asked, or did not confirm it | +| `kiro_effort_unconfirmable` | `error_usage` | `--effort` with Kiro | +| `open_unsupported` | `error_usage` | `--open` with a server, or with `--url`: it opens this computer's desktop app | +| `open_takes_no_url` | `error_usage` | `open` with `--url` | +| `nested_too_deep` | `error_usage` | A run from inside a run that is itself nested | +| `bad_data_dir` | `error_usage` | `--standalone --data-dir` with a directory that cannot be made absolute | +| `bad_run_id` | `error_usage` | `result` or `cancel` with something that is not a run id, or fewer than 8 of its characters | +| `unknown_automation` | `error_usage` | No automation has that id | +| `not_installable`, `bad_version` | `error_usage` | `agents install` of an agent with its own installer, or with a `--version` that is not one | +| `not_a_git_repository` | `error_usage` | `--worktree` with a workspace that is not in a git repository | +| `bad_worktree_name` | `error_usage` | A `--worktree` name that is not letters, digits, `.`, `_` and `-` | +| `workspace_not_in_worktree`, `worktree_unavailable` | `error_usage` | The workspace's directory is not in the repository's HEAD, there is no directory above the repository to put the worktree in, or git is older than 2.33 | +| `ambiguous_run` | `error_usage` | More than one run starts that way: `next_steps` lists them | +| `bad_nonce` | `error_usage` | A request no `codeg-cli` sends | +| `bad_output_schema` | `error_usage` | `--output-schema` names a file that cannot be read, or is not a JSON Schema whose root takes objects | +| `output_unwritable` | `error_during_execution` | The reply could not be written to `-o FILE` | +| `agent_not_installed` | `error_during_execution` | The agent is not installed: `codeg-cli agents` says how to install it | +| `agent_unavailable` | `error_during_execution` | The agent is disabled in Codeg's settings, or its settings cannot be read | +| `agent_spawn_failed` | `error_during_execution` | The agent could not be started | +| `agent_exited` | `error_during_execution` | The agent ended before its turn did | +| `selectors_timeout` | `error_during_execution` | The agent did not list its options within 30 seconds, so `--model` and the like could not be checked | +| `workspace_unavailable`, `conversation_create_failed`, `prompt_failed` | `error_during_execution` | Codeg could not read the workspace, create the conversation, or send the prompt | +| `worktree_failed` | `error_during_execution` | git could not add the worktree | +| `automation_busy`, `automation_failed`, `automations_unavailable` | `error_during_execution` | The automation is running already, or could not be started or read | +| `install_failed`, `agent_not_found_after_install` | `error_during_execution` | The install failed, or what it installed cannot be found where Codeg looks | +| `cancelled` | `error_during_execution` | The run was cancelled in Codeg | +| `run_stopped`, `run_lost` | `error_during_execution` | The run stopped before its prompt was sent | +| `stop_` | `error_during_execution` | The turn ended for another reason than finishing: `stop_max_tokens`, `stop_refusal`, `stop_max_turn_requests`, … | +| `too_many_reservations` | `error_during_execution` | Too many runs are being set up on that Codeg at once. Try again shortly | +| `agents_unavailable`, `assistants_unavailable` | `error_during_execution` | Codeg could not list them | +| `http_error` | `error_during_execution` | An unexpected HTTP answer | +| `timeout` | `error_timeout` | `--timeout` ran out | +| `runtime_unavailable` | `error_runtime_unavailable` | No Codeg is running where `codeg-cli` looked, or the one there does not answer | +| `unauthorized` | `error_runtime_unavailable` | That Codeg refused the token | +| `runtime_lost` | `error_runtime_unavailable` | Codeg stopped answering during the run. The run may still be going | +| `run_not_found`, `result_missing`, `install_not_found` | `error_runtime_unavailable` | That Codeg has no such run or install, or no result for it | +| `open_failed`, `open_timeout` | `error_runtime_unavailable` | `open` could not start the desktop app, or it did not answer in time | +| `no_server`, `standalone_failed` | `error_runtime_unavailable` | `--standalone` found no `codeg-server` to start, or the one it started did not come up | +| `data_dir_in_use` | `error_runtime_unavailable` | `--standalone`: another Codeg is alive on that data directory | +| `runtime_access_denied` | `error_runtime_access_denied` | The operating system refused the connection | +| `runtime_incompatible`, `api_version`, `bad_response`, `run_not_reserved` | `error_runtime_incompatible` | That Codeg and this `codeg-cli` do not understand each other | +| `automations_elsewhere` | `error_runtime_incompatible` | Another Codeg on the same data directory runs the automations | +| `permission_required` | `error_permission_required` | A permission the policy does not give | +| `interrupted` | `error_interrupted` | SIGINT or SIGTERM | +| `output_schema_unmet` | `error_max_structured_output_retries` | The agent handed in no result that matches `--output-schema`: `message` says what it did instead | + +Codes are only ever added, too. + +## Events + +`--output-format stream-json` prints one JSON object per line as the run goes. +Each carries: + +| Field | | +| --- | --- | +| `v` | The contract version: `1` | +| `type` | What happened (below) | +| `seq` | Increases within a run | +| `run_id` | The run. `null` only on a result for a run that never got an id | + +| `type` | Fields | | +| --- | --- | --- | +| `init` | `conversation_id`, `folder_id`, `agent`, `assistant?` (`{id, name}`), `workspace`, `link`, `worktree?` (`{path, branch}`) | The conversation exists. `link` opens it: `codeg://session/`. `workspace` is where the agent works | +| `session` | `session_id`, `launch` | The agent started. `session_id` is the agent's own id for the session | +| `message_delta` | `text` | Reply text. Consecutive pieces arrive merged | +| `tool_call` | `id`, `title`, `kind`, `status` | The agent called a tool | +| `tool_call_update` | `id`, `title?`, `status?` | A tool call changed | +| `plan` | `entries` (`[{content, status}]`) | The agent's plan | +| `permission` | `request_id`, `conversation_id`, `tool`, `tool_kind?`, `decision`, `decided_by?`, `option_name?` | A permission request. `decision`: `allowed`, `denied`, `waiting`, `failed`, `withdrawn`. `decided_by`: `policy`, `user`, `withdrawn` | +| `question` | `question_id`, `conversation_id`, `decision` | A question the agent asked. `decision`: `declined`, `waiting` | +| `notice` | `severity`, `title`, `message?` | Something worth knowing, e.g. a policy that was narrowed, or a result `submit_result` refused | +| `error` | `message`, `code?` | An error during the run. The result says how the run ended | +| `gap` | — | Some events were lost: they were older than what Codeg keeps | +| `result` | See [below](#the-result-object) | The last event | + +A `permission` or `question` whose `conversation_id` is not the run's came +from a sub-agent the run delegated to. `?` marks a field that may be missing. + +The heartbeat is not an event: it only ever goes to stderr. + +### The result object + +The last event of a run, and all that `--output-format json` prints. Its shape +is the one Claude Code, Cursor and others print, so a `jq '.result'` written for +them reads it too. + +```json +{ + "v": 1, + "seq": 42, + "run_id": "8d0c7c2e-3f0b-4a5e-9c1b-6f2d1e0a7b44", + "type": "result", + "subtype": "success", + "is_error": false, + "result": "The commit looks good. Two things to look at: …", + "session_id": "9f1e2d3c-…", + "stop_reason": "end_turn", + "duration_ms": 48210, + "permission_denials": [], + "launch": { + "requested": {"model": "opus"}, + "effective": {"model": "opus", "mode": "default"} + }, + "conversation_id": 214, + "link": "codeg://session/214" +} +``` + +| Field | | +| --- | --- | +| `subtype`, `is_error` | How the run ended. See [Exit codes](#exit-codes) | +| `result` | The agent's final reply, or `null` | +| `session_id` | The agent's own session id, or `null` | +| `stop_reason` | Why the turn ended, as the agent said: `end_turn`, `cancelled`, `max_tokens`, … | +| `duration_ms` | How long the run took | +| `permission_denials` | `[{tool_name, tool_kind?, request_id, conversation_id?}]`: what was refused | +| `launch` | `requested` and `effective`: the `model`, `effort` and `mode` asked for, and those in effect. `unconfirmed` names any the agent accepted without confirming | +| `pending` | Under `--permissions wait`: `[{request_id, conversation_id?, tool}]`, the requests, questions and plan approvals still waiting when `--timeout` ended the run | +| `target_index?` | With several `-a` and `-A`: which run this is, from 1 | +| `conversation_id`, `link` | The conversation in Codeg | +| `agent`, `assistant?` | The agent that ran, and the assistant (`{id, name}`) it ran as. Missing when the run failed before its agent was known | +| `worktree?` | With `--worktree`: `{path, branch}` of the worktree the run worked in | +| `structured_output?` | With `--output-schema`: the result the agent handed in, which matches the schema, or `null` when there is none. Missing without `--output-schema` | +| `error` | When `is_error`: `{code, message, next_steps}`. See [Error codes](#error-codes) | + +A run that failed before Codeg took it — no Codeg to reach, or arguments +`codeg-cli` itself refused — has `null` for `run_id`. One that failed before +its conversation existed has `null` for `conversation_id` and `link`, and +`stream-json` then prints the result alone, without `init`. + +**Compatibility.** Fields and event types are only ever added. An existing +field never changes its meaning or its type. Ignore fields and event types you +do not know: newer Codegs send more. + +## In CI + +The shortest way on a fresh runner is a server of the command's own: + +```bash +curl -fsSL https://raw.githubusercontent.com/spacering-net/codeg/main/install.sh | bash +export ANTHROPIC_API_KEY="..." # from the CI system's secrets +codeg-cli --standalone agents install claude_code +git show HEAD | codeg-cli --standalone -a claude_code -w "$PWD" --timeout 30m \ + -p "Review this commit for bugs" -o review.md +``` + +`--standalone` starts the `codeg-server` installed next to `codeg-cli` (or on +PATH) on a fresh temporary data directory, listening on this machine only; +runs the command there; and stops the server and removes the directory when +the command ends. Killed outright (`kill -9`), the command still takes its +server down with it, but leaves the temporary directory. The agents it starts get +the command's environment, credentials included. Each command starts from +nothing: an npm agent stays installed (npm keeps it), but settings, assistants +and downloaded agents do not. `--data-dir DIR` keeps them in `DIR` between +commands instead. It never starts on its own: when `codeg-cli` cannot reach a +Codeg it says so, and nothing else happens. + +A data directory is never shared with a `--standalone` server. One that finds +another Codeg alive on its `--data-dir` — even one that cannot be reached — +stops before touching anything, with `data_dir_in_use`. A `codeg-server` +started on a directory a `--standalone` server holds waits for it; the +desktop app says so and quits. Only a Codeg that ships `codeg-cli` is seen +this way: an older desktop app or `codeg-server` on the same directory is +not, and does not see a `--standalone` server either — keep `--data-dir` +away from a directory one of them uses. `--standalone` does not go with +`--url`, `--detach`, `result`, `cancel` or `open`: its server is gone when the +command is. For the same reason `automations run` waits for its run to end, +and `agents install` for the install, so `--wait` does not go with it either. + +A CI job can also use a `codeg-server` that runs elsewhere, with `--url` and +its token, or start one of its own that several commands share. A fresh +runner: + +```bash +set -e + +# 1. codeg-server and codeg-cli +curl -fsSL https://raw.githubusercontent.com/spacering-net/codeg/main/install.sh | bash + +# 2. A server for this job alone: its own data directory, loopback only. The +# agents it starts inherit its environment, credentials included. +export CODEG_DATA_DIR="$(mktemp -d)" +export CODEG_HOST=127.0.0.1 CODEG_PORT=3080 +export CODEG_TOKEN="$(openssl rand -hex 32)" +export ANTHROPIC_API_KEY="..." # from the CI system's secrets +codeg-server > "$CODEG_DATA_DIR/server.log" 2>&1 & +export CODEG_URL="http://127.0.0.1:$CODEG_PORT" +for _ in $(seq 60); do codeg-cli status > /dev/null 2>&1 && break; sleep 1; done +codeg-cli status # fails the job, saying why, if the server did not come up + +# 3. The agent, installed by that server as its settings page would. +codeg-cli agents install claude_code + +# 4. The run +git show HEAD | codeg-cli -a claude_code -w "$PWD" --timeout 30m \ + -p "Review this commit for bugs" -o review.md +``` + +`CODEG_URL` and `CODEG_TOKEN` point `codeg-cli` at that server, as `--url` +and `--token-file` would. The prompt carries the commit on stdin, because +under the default `--permissions deny` the agent cannot run `git` itself. +`--permissions reads` lets it read the rest of the checkout. + +In GitHub Actions: + +```yaml +- name: Review the commit + env: + ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} + CODEG_DATA_DIR: ${{ runner.temp }}/codeg + CODEG_HOST: 127.0.0.1 + CODEG_PORT: "3080" + run: | + curl -fsSL https://raw.githubusercontent.com/spacering-net/codeg/main/install.sh | bash + export CODEG_TOKEN="$(openssl rand -hex 32)" + codeg-server > "$RUNNER_TEMP/codeg-server.log" 2>&1 & + export CODEG_URL="http://127.0.0.1:$CODEG_PORT" + for _ in $(seq 60); do codeg-cli status > /dev/null 2>&1 && break; sleep 1; done + codeg-cli status + codeg-cli agents install claude_code + git show HEAD | codeg-cli -a claude_code -w "$GITHUB_WORKSPACE" --timeout 30m \ + --permissions reads -p "Review this commit for bugs" -o review.md +``` + +The step fails when the run does: the exit code is non-zero for anything but +a finished turn. To let it pass and decide from the result, add +`--output-format json` and read `subtype`. To decide on what the agent found, +have it hand in a verdict with `--output-schema`: see +[Structured output](#structured-output). + +## Security + +- **This computer only.** A Codeg's `codeg-cli` port listens on `127.0.0.1` + and serves nothing but the run API and a health check: no web interface, no + other API. It + accepts only `Host: 127.0.0.1` and `localhost`, so a web page cannot reach it + by DNS rebinding. The desktop app's web service is a different thing, off + by default. +- **A key per launch.** Each start of Codeg makes a new key and keeps it in the + endpoint file only — never in the database. The file and its folder are + readable by your user alone from the moment they exist (`0700`/`0600`, an + owner-only access list on Windows). A folder found otherwise — another + user's, one others may read, or on macOS one with an access list (say, + inherited from the folder above) — is refused and left as it is: Codeg + then publishes nothing, and Settings shows why. `codeg-cli` in turn reads + only an endpoint file that is your own, and that no one else may write. +- **Proof before anything is sent.** A file left by a crash may name a port + another program now holds. `codeg-cli` first asks whoever answers to prove it + knows the key, bound to that port, and sends the key and the prompt only to + one that does. +- **The same trust as your files.** Any program running as you can read the + endpoint file, and so run agents as you. It could as well read Codeg's + database or start an agent itself: the boundary is your user account. +- **Remote.** `--url` uses the server's own token, as the web interface does, + and is allowed nothing the web interface is not. Prefer HTTPS. A `--url` to + this machine (`127.0.0.1`, `localhost`) never goes through a proxy, and a + user name or password in the URL is never printed. Switching Command-line + access off closes the local port; it does not change what the token allows. +- **Nested runs** are kept to one level and to their parent's policy (see + [Permissions](#permissions)) — against accidents, not as a security + boundary. diff --git a/docs/images/agents/claude-code.svg b/docs/images/agents/claude-code.svg new file mode 100644 index 0000000000..6a6eb9cc79 --- /dev/null +++ b/docs/images/agents/claude-code.svg @@ -0,0 +1 @@ +Claude Code diff --git a/docs/images/agents/cline-dark.svg b/docs/images/agents/cline-dark.svg new file mode 100644 index 0000000000..927648dea7 --- /dev/null +++ b/docs/images/agents/cline-dark.svg @@ -0,0 +1 @@ +Cline diff --git a/docs/images/agents/cline.svg b/docs/images/agents/cline.svg new file mode 100644 index 0000000000..d89b617d27 --- /dev/null +++ b/docs/images/agents/cline.svg @@ -0,0 +1 @@ +Cline diff --git a/docs/images/agents/codebuddy-dark.svg b/docs/images/agents/codebuddy-dark.svg new file mode 100644 index 0000000000..1f0f8c63b7 --- /dev/null +++ b/docs/images/agents/codebuddy-dark.svg @@ -0,0 +1 @@ +CodeBuddy diff --git a/docs/images/agents/codebuddy.svg b/docs/images/agents/codebuddy.svg new file mode 100644 index 0000000000..7c1837dfa7 --- /dev/null +++ b/docs/images/agents/codebuddy.svg @@ -0,0 +1 @@ +CodeBuddy diff --git a/docs/images/agents/codex.svg b/docs/images/agents/codex.svg new file mode 100644 index 0000000000..327a33df9c --- /dev/null +++ b/docs/images/agents/codex.svg @@ -0,0 +1 @@ +Codex diff --git a/docs/images/agents/command-code.svg b/docs/images/agents/command-code.svg new file mode 100644 index 0000000000..b147cb0e1c --- /dev/null +++ b/docs/images/agents/command-code.svg @@ -0,0 +1 @@ +Command Code diff --git a/docs/images/agents/cursor-dark.svg b/docs/images/agents/cursor-dark.svg new file mode 100644 index 0000000000..e40274bb95 --- /dev/null +++ b/docs/images/agents/cursor-dark.svg @@ -0,0 +1 @@ +Cursor diff --git a/docs/images/agents/cursor.svg b/docs/images/agents/cursor.svg new file mode 100644 index 0000000000..ec15313519 --- /dev/null +++ b/docs/images/agents/cursor.svg @@ -0,0 +1 @@ +Cursor diff --git a/docs/images/agents/deepseek-harness.svg b/docs/images/agents/deepseek-harness.svg new file mode 100644 index 0000000000..af698ba63e --- /dev/null +++ b/docs/images/agents/deepseek-harness.svg @@ -0,0 +1 @@ +DeepSeek Harness diff --git a/docs/images/agents/gemini-cli.svg b/docs/images/agents/gemini-cli.svg new file mode 100644 index 0000000000..a469be5b3b --- /dev/null +++ b/docs/images/agents/gemini-cli.svg @@ -0,0 +1 @@ +Gemini CLI diff --git a/docs/images/agents/google-antigravity-dark.svg b/docs/images/agents/google-antigravity-dark.svg new file mode 100644 index 0000000000..3458c9cbc2 --- /dev/null +++ b/docs/images/agents/google-antigravity-dark.svg @@ -0,0 +1 @@ +Google Antigravity diff --git a/docs/images/agents/google-antigravity.svg b/docs/images/agents/google-antigravity.svg new file mode 100644 index 0000000000..8dce274d93 --- /dev/null +++ b/docs/images/agents/google-antigravity.svg @@ -0,0 +1 @@ +Google Antigravity diff --git a/docs/images/agents/grok-dark.svg b/docs/images/agents/grok-dark.svg new file mode 100644 index 0000000000..ea8b1ccb50 --- /dev/null +++ b/docs/images/agents/grok-dark.svg @@ -0,0 +1 @@ +Grok diff --git a/docs/images/agents/grok.svg b/docs/images/agents/grok.svg new file mode 100644 index 0000000000..43758b6b75 --- /dev/null +++ b/docs/images/agents/grok.svg @@ -0,0 +1 @@ +Grok diff --git a/docs/images/agents/hermes-agent-dark.svg b/docs/images/agents/hermes-agent-dark.svg new file mode 100644 index 0000000000..2488642d47 --- /dev/null +++ b/docs/images/agents/hermes-agent-dark.svg @@ -0,0 +1 @@ +Hermes Agent diff --git a/docs/images/agents/hermes-agent.svg b/docs/images/agents/hermes-agent.svg new file mode 100644 index 0000000000..2a78f2c567 --- /dev/null +++ b/docs/images/agents/hermes-agent.svg @@ -0,0 +1 @@ +Hermes Agent diff --git a/docs/images/agents/kimi-code.svg b/docs/images/agents/kimi-code.svg new file mode 100644 index 0000000000..b2e1a2e1c1 --- /dev/null +++ b/docs/images/agents/kimi-code.svg @@ -0,0 +1 @@ +Kimi Code diff --git a/docs/images/agents/kiro.svg b/docs/images/agents/kiro.svg new file mode 100644 index 0000000000..1e5374ce25 --- /dev/null +++ b/docs/images/agents/kiro.svg @@ -0,0 +1 @@ +Kiro CLI diff --git a/docs/images/agents/openclaw.svg b/docs/images/agents/openclaw.svg new file mode 100644 index 0000000000..c60cb3c777 --- /dev/null +++ b/docs/images/agents/openclaw.svg @@ -0,0 +1 @@ +OpenClaw diff --git a/docs/images/agents/opencode-dark.svg b/docs/images/agents/opencode-dark.svg new file mode 100644 index 0000000000..78bb3ede9a --- /dev/null +++ b/docs/images/agents/opencode-dark.svg @@ -0,0 +1 @@ +OpenCode diff --git a/docs/images/agents/opencode.svg b/docs/images/agents/opencode.svg new file mode 100644 index 0000000000..23a0b1a1cd --- /dev/null +++ b/docs/images/agents/opencode.svg @@ -0,0 +1 @@ +OpenCode diff --git a/docs/images/agents/pi.svg b/docs/images/agents/pi.svg new file mode 100644 index 0000000000..a974befd05 --- /dev/null +++ b/docs/images/agents/pi.svg @@ -0,0 +1 @@ +Pi diff --git a/docs/images/agents/qoder-dark.svg b/docs/images/agents/qoder-dark.svg new file mode 100644 index 0000000000..bc674c47b2 --- /dev/null +++ b/docs/images/agents/qoder-dark.svg @@ -0,0 +1 @@ +Qoder diff --git a/docs/images/agents/qoder.svg b/docs/images/agents/qoder.svg new file mode 100644 index 0000000000..a3e68726f5 --- /dev/null +++ b/docs/images/agents/qoder.svg @@ -0,0 +1 @@ +Qoder diff --git a/docs/images/agents/trae.svg b/docs/images/agents/trae.svg new file mode 100644 index 0000000000..73e1b35696 --- /dev/null +++ b/docs/images/agents/trae.svg @@ -0,0 +1 @@ +TRAE CLI diff --git a/docs/images/agents/zcode.svg b/docs/images/agents/zcode.svg new file mode 100644 index 0000000000..96f9efd07d --- /dev/null +++ b/docs/images/agents/zcode.svg @@ -0,0 +1 @@ +ZCode diff --git a/docs/images/features/agents-dark.gif b/docs/images/features/agents-dark.gif new file mode 100644 index 0000000000..16673456f0 Binary files /dev/null and b/docs/images/features/agents-dark.gif differ diff --git a/docs/images/features/agents-light.gif b/docs/images/features/agents-light.gif new file mode 100644 index 0000000000..d45979a8e7 Binary files /dev/null and b/docs/images/features/agents-light.gif differ diff --git a/docs/images/features/anywhere-dark.gif b/docs/images/features/anywhere-dark.gif new file mode 100644 index 0000000000..9700f6dcfd Binary files /dev/null and b/docs/images/features/anywhere-dark.gif differ diff --git a/docs/images/features/anywhere-light.gif b/docs/images/features/anywhere-light.gif new file mode 100644 index 0000000000..658b4334e5 Binary files /dev/null and b/docs/images/features/anywhere-light.gif differ diff --git a/docs/images/features/browser-dark.gif b/docs/images/features/browser-dark.gif new file mode 100644 index 0000000000..866355154e Binary files /dev/null and b/docs/images/features/browser-dark.gif differ diff --git a/docs/images/features/browser-light.gif b/docs/images/features/browser-light.gif new file mode 100644 index 0000000000..c3f42b44fe Binary files /dev/null and b/docs/images/features/browser-light.gif differ diff --git a/docs/images/features/canvas-dark.gif b/docs/images/features/canvas-dark.gif new file mode 100644 index 0000000000..0d03fe9537 Binary files /dev/null and b/docs/images/features/canvas-dark.gif differ diff --git a/docs/images/features/canvas-light.gif b/docs/images/features/canvas-light.gif new file mode 100644 index 0000000000..f00fb6377a Binary files /dev/null and b/docs/images/features/canvas-light.gif differ diff --git a/docs/images/features/multi-agent-dark.gif b/docs/images/features/multi-agent-dark.gif new file mode 100644 index 0000000000..275ae11fa7 Binary files /dev/null and b/docs/images/features/multi-agent-dark.gif differ diff --git a/docs/images/features/multi-agent-light.gif b/docs/images/features/multi-agent-light.gif new file mode 100644 index 0000000000..78d9505efd Binary files /dev/null and b/docs/images/features/multi-agent-light.gif differ diff --git a/docs/images/features/office-dark.gif b/docs/images/features/office-dark.gif new file mode 100644 index 0000000000..c459f189c7 Binary files /dev/null and b/docs/images/features/office-dark.gif differ diff --git a/docs/images/features/office-light.gif b/docs/images/features/office-light.gif new file mode 100644 index 0000000000..6ac5b2d8fd Binary files /dev/null and b/docs/images/features/office-light.gif differ diff --git a/docs/images/features/sessions-dark.gif b/docs/images/features/sessions-dark.gif new file mode 100644 index 0000000000..016cd977a0 Binary files /dev/null and b/docs/images/features/sessions-dark.gif differ diff --git a/docs/images/features/sessions-light.gif b/docs/images/features/sessions-light.gif new file mode 100644 index 0000000000..126e892160 Binary files /dev/null and b/docs/images/features/sessions-light.gif differ diff --git a/docs/images/features/todos-dark.gif b/docs/images/features/todos-dark.gif new file mode 100644 index 0000000000..6c69cc673b Binary files /dev/null and b/docs/images/features/todos-dark.gif differ diff --git a/docs/images/features/todos-light.gif b/docs/images/features/todos-light.gif new file mode 100644 index 0000000000..9b86924a7f Binary files /dev/null and b/docs/images/features/todos-light.gif differ diff --git a/docs/images/features/workspace-dark.gif b/docs/images/features/workspace-dark.gif new file mode 100644 index 0000000000..a4943de0f7 Binary files /dev/null and b/docs/images/features/workspace-dark.gif differ diff --git a/docs/images/features/workspace-light.gif b/docs/images/features/workspace-light.gif new file mode 100644 index 0000000000..c7141c7800 Binary files /dev/null and b/docs/images/features/workspace-light.gif differ diff --git a/docs/images/fluxion-ai.png b/docs/images/fluxion-ai.png deleted file mode 100755 index 378c18bde1..0000000000 Binary files a/docs/images/fluxion-ai.png and /dev/null differ diff --git a/docs/images/lq-router.png b/docs/images/lq-router.png deleted file mode 100644 index b4df6897ac..0000000000 Binary files a/docs/images/lq-router.png and /dev/null differ diff --git a/docs/images/onehop.jpg b/docs/images/onehop.jpg deleted file mode 100755 index ddc58ad46f..0000000000 Binary files a/docs/images/onehop.jpg and /dev/null differ diff --git a/docs/images/sidrune-ai.png b/docs/images/sidrune-ai.png new file mode 100755 index 0000000000..2ca7f15c7a Binary files /dev/null and b/docs/images/sidrune-ai.png differ diff --git a/docs/images/sui-xiang.jpg b/docs/images/sui-xiang.jpg deleted file mode 100644 index 62730b05a2..0000000000 Binary files a/docs/images/sui-xiang.jpg and /dev/null differ diff --git a/docs/images/weixin-dark.jpg b/docs/images/weixin-dark.jpg index 0e82dcde70..13ecca083f 100644 Binary files a/docs/images/weixin-dark.jpg and b/docs/images/weixin-dark.jpg differ diff --git a/docs/images/weixin-light.jpg b/docs/images/weixin-light.jpg index 5d9ac2c2c2..b3a7d306ff 100644 Binary files a/docs/images/weixin-light.jpg and b/docs/images/weixin-light.jpg differ diff --git a/docs/readme/README.ar.md b/docs/readme/README.ar.md index f860913d85..60b071d585 100644 --- a/docs/readme/README.ar.md +++ b/docs/readme/README.ar.md @@ -1,32 +1,44 @@ -# Codeg - -[![Release](https://img.shields.io/github/v/release/xintaofei/codeg)](https://github.com/xintaofei/codeg/releases) -[![Docs](https://img.shields.io/badge/docs-docs.codeg.app-3451b2)](https://docs.codeg.app) -[![License](https://img.shields.io/github/license/xintaofei/codeg)](../../LICENSE) - -

- English | - 简体中文 | - 繁體中文 | - 日本語 | - 한국어 | - Español | - Deutsch | - Français | - Português | - العربية +

+ Codeg logo Codeg +

+ +

+ GitHub stars + Latest release + Total downloads + License + Documentation + Platforms: macOS, Windows, Linux, Docker, iOS, Android

-Codeg (Code Generation) هو مساحة عمل برمجية متعددة الوكلاء: شغّل كل وكلاء البرمجة بالذكاء الاصطناعي في مكان واحد — ودعهم يعملون معًا. +

+ English · 简体中文 · 繁體中文 · 日本語 · 한국어 · Español · Deutsch · Français · Português · العربية +

-يجمع جلساتك من كل واجهات الوكلاء المدعومة في مساحة عمل واحدة قابلة للبحث، ويتيح للوكيل الرئيسي أن يفوّض إلى وكلاء فرعيين من أنواع أخرى داخل المهمة نفسها. أما العمل الذي لا تريد الجلوس لمتابعته فيذهب إلى لوحة المهام قيد الانتظار: كل مهمة في فرعها الخاص، تعمل دون إشراف، وتنتظر مراجعتك قبل أن تُدمج. ويعمل Codeg كتطبيق سطح مكتب أو خادم مستقل أو حاوية Docker، إضافةً إلى تطبيقَي iOS وAndroid الأصليين لمواصلة العمل بعيدًا عن مكتبك؛ يأتي بخمسة عشر وكيلاً مدمجًا، ويمكنك تسجيل أي وكيل آخر متوافق مع ACP بنفسك. +

+ مساحة العمل البرمجية متعددة الوكلاء.
+ شغّل كل وكلاء البرمجة بالذكاء الاصطناعي في مكان واحد — ودعهم يعملون معًا. +

-![مساحة العمل](../images/workspace-light.png#gh-light-mode-only) -![مساحة العمل](../images/workspace-dark.png#gh-dark-mode-only) +

تنزيل Codeg · التوثيق

-## 📖 التوثيق +

+ + + مساحة عمل Codeg: محادثة مع وكيل بجوار فروقاتها الحيّة وملفات المشروع + +

-**التوثيق الكامل على [docs.codeg.app](https://docs.codeg.app)** — [البداية](https://docs.codeg.app/getting-started/) · [الدليل](https://docs.codeg.app/guide/) · [المرجع](https://docs.codeg.app/reference/) + + + + + + + + + +
🧩 واجهة واحدة لكل الوكلاء
تسعة عشر وكيلاً مدمجًا، ويمكن لأي وكيل متوافق مع ACP الانضمام — ويُعرض عملهم جميعًا كمحادثة منظَّمة موحّدة، لا كطرفية.
🔎 جلسات تنتقل معك
استورد السجل الذي يحفظه كل وكيل على القرص، وابحث فيه، واستأنفه، ثم سلّمه إلى وكيل آخر.
🤝 وكلاء يعملون معًا
فوّض العمل عبر الوكلاء بـ @، أو ضع في الطابور مهامَّ قيد الانتظار تعمل دون إشراف، كلٌّ في شجرة عملها الخاصة.
🌍 أينما تعمل
تطبيق سطح المكتب، وخادم مستضاف ذاتيًا أو Docker، وiPhone وiPad وAndroid — وكذلك Telegram أو Lark أو WeChat.
## 💖 الرعاة @@ -45,13 +57,6 @@ Codeg (Code Generation) هو مساحة عمل برمجية متعددة الو شكراً لـ 合租巴士 على رعاية هذا المشروع! 合租巴士 هي منصة موثوقة وفعّالة لخدمات ترحيل الذكاء الاصطناعي، توفّر ترحيلاً عالي الاستقرار للنماذج الرئيسية مثل Codex وClaude Code. نسبة الشحن شفافة (1:1)، مع دعم لمعدّل Codex يبدأ من 0.08 فقط. انضم إلى المجموعة عبر الموقع الرسمي للحصول على رصيد تجريبي بقيمة 5 دولارات. - - - LQ router
- LQ router - - شكراً لخدمة الترحيل LQ router على رعاية هذا المشروع! LQ router هي خدمة ترحيل احترافية للذكاء الاصطناعي بمستوى المؤسسات، توفّر للشركات والمطورين الأفراد وصولاً مستقراً وفعّالاً ومنخفض التكلفة إلى واجهات API لنماذج الذكاء الاصطناعي. تدعم المنصة النماذج الرائدة مثل GPT وClaude وGrok وGemini، بمعامل تسعير لـ GPT Pro يبدأ من 0.1 فقط. انضم إلى المجموعة عبر الموقع الرسمي واحصل على رصيد تجريبي بقيمة دولار واحد. - APIMart
@@ -72,10 +77,10 @@ Codeg (Code Generation) هو مساحة عمل برمجية متعددة الو - Fluxion AI
- Fluxion AI + Sidrune AI
+ Sidrune AI - شكراً لـ Fluxion AI على رعاية هذا المشروع! توفّر Fluxion AI وصولاً سريعاً وموثوقاً ومنخفض التكلفة عبر واجهة API موحّدة واحدة إلى GPT وClaude وGemini وغيرها من نماذج الذكاء الاصطناعي الرائدة. يمكن للمستخدمين الجدد الحصول على رصيد API بقيمة 3 دولارات عبر رابطنا المخصّص. + شكراً لـ Sidrune AI على رعاية هذا المشروع! توفّر Sidrune AI واجهة API واحدة للوصول إلى GPT وClaude وغيرها من نماذج الذكاء الاصطناعي الرئيسية. يحصل المستخدمون الجدد على رصيد API بقيمة 3 دولارات عند التسجيل عبر رابطنا المخصّص باستخدام الرمز الترويجي SDRCODEG. @@ -88,132 +93,269 @@ Codeg (Code Generation) هو مساحة عمل برمجية متعددة الو > هل ترغب في أن تصبح راعياً لـ Codeg؟ [راسلنا عبر البريد الإلكتروني.](mailto:itpkcn@gmail.com) -## 🤖 الوكلاء المدعومون - -Claude Code · Codex · Gemini · OpenClaw · OpenCode · Cline · Hermes · CodeBuddy · Kimi Code · Pi · Grok · Cursor · DeepSeek Harness · Qoder · Google Antigravity - -يتولّى Codeg تثبيت معظمهم وتثبيت إصداراتهم وتحديثهم نيابةً عنك. راجع [الوكلاء المدعومون](https://docs.codeg.app/guide/supported-agents) للقائمة الكاملة، ومتطلبات تشغيل كل وكيل، وموضع حفظ جلساته على القرص. - -ليس في القائمة؟ أضِفه بنفسك. اختر أي وكيل من سجل ACP العام أو الصق ملف distribution JSON الخاص به، فيتولّى Codeg تثبيته والتحقّق مسبقًا من قدرته على الإقلاع، ثم يعامله كوكيل مدمج — يظهر في المُحدِّد، ويقبل التفويض بـ `@` والمهارات، وتُسجَّل محادثاته وتصبح قابلة للبحث حتى لو لم يحتفظ الوكيل نفسه بأي سجل. → [الوكلاء المخصّصون](https://docs.codeg.app/guide/custom-agents) - -## 🤝 التعاون متعدد الوكلاء - -التعاون متعدد الوكلاء، مختصرًا في ضغطة واحدة: اكتب `@`، اختر وكيلاً، ثم أرسل. يتكفّل Codeg بالتنسيق — يشغّل كل وكيل تذكره كجلسة مستقلة، ويسلّمه المهمة، ثم يعيد بثّ عمله إلى المحادثة التي أنت فيها بالفعل. اذكر اثنين ليعملا جنبًا إلى جنب: Claude Code يكتب المسودة بينما يراجع Codex. بلا تبديل للسياق، وبلا نسخ ولصق بين الطرفيات. +## ✨ المزايا -وعندما يشغّل وكيلٌ وكلاءه الفرعيين — وهذا ما يفعله Claude Code وCodex وGrok وOpenCode — تحصل كل مهمة فرعية على بطاقة تمتلئ أثناء العمل، بدلاً من الظهور كلها مرة واحدة عند الانتهاء. افتح إحداها لتقرأ جلسة المهمة الفرعية نفسها. - -![تفويض مهمة إلى وكلاء فرعيين من محادثة واحدة في Codeg](../images/collaboration-light.gif#gh-light-mode-only) -![تفويض مهمة إلى وكلاء فرعيين من محادثة واحدة في Codeg](../images/collaboration-dark.gif#gh-dark-mode-only) - -## ✅ المهام قيد الانتظار - -ليس كل عمل يحتاج إلى متابعتك. دوّنه فحسب — عنوان ووصف والوكيل الذي سينفّذه — ويمنحه Codeg **نسخته الخاصة من الشيفرة**: شجرة عمل git بجوار مشروعك، على فرع خاص بها. تعمل عدة مهام في الوقت نفسه دون أن تمسّ إحداها الأخرى، ولا الشجرة التي تعمل فيها أنت. يمكنك جدولة مهمة لهذه الليلة، أو ترك مجلد يستهلك طابوره وحده حتى حد التزامن الذي تحدده. - -المهمة المنتهية لا تدمج نفسها. تنتقل إلى عمود المراجعة وتنتظر: اقرأ الفروقات، أو أعدها لجولة أخرى، أو اقبلها — عندها يتولّى الوكيل الدمج، فيجلب فرعك الأساسي إلى شجرة عمله ويحلّ التعارضات هناك أولًا. بعد ذلك لا يأخذ Codeg بكلام الوكيل، بل يتحقق من git بنفسه: أي دمج لا يستطيع تأكيده يعود إلى المراجعة بدلاً من الإبلاغ عن نجاح. - -![لوحة المهام قيد الانتظار، والمهام تنتقل من «قيد الانتظار» إلى «قيد التنفيذ» ثم «تم»](../images/task-light.png#gh-light-mode-only) -![لوحة المهام قيد الانتظار، والمهام تنتقل من «قيد الانتظار» إلى «قيد التنفيذ» ثم «تم»](../images/task-dark.png#gh-dark-mode-only) - -## 🪟 العرض المُقسَّم - -شريط تبويبات واحد لا يكفي دائمًا. انقر بزر الفأرة الأيمن على تبويب محادثة لتقسيم العرض **يمينًا** أو **أسفل**، بأي عدد تريده: لوحان جنبًا إلى جنب، أو ثلاثة مرصوفة، أو شبكة كاملة. كل مجموعة مساحة عمل مكتملة بذاتها — تبويباتها الخاصة، ورأسها الخاص، وزر محادثة جديدة خاص بها — فيتولّى Claude Code إعادة الهيكلة في لوح بينما يراجع Codex فرقًا في اللوح المجاور. - -اسحب تبويبًا من مجموعة إلى أخرى وستواصل جلسته البثّ أثناء الانتقال، واسحب الفاصل بين مجموعتين لتغيير طريقة تقاسمهما المساحة. يُحفظ تخطيطك لكل مساحة عمل، بما في ذلك المسودات: أعِد فتح Codeg فيعود التقسيم كما كان، والنص الذي لم ترسله لا يزال في الصندوق. - -![تقسيم منطقة المحادثة إلى شبكة من مجموعات التبويبات](../images/split-light.gif#gh-light-mode-only) -![تقسيم منطقة المحادثة إلى شبكة من مجموعات التبويبات](../images/split-dark.gif#gh-dark-mode-only) - -## 📄 مستندات Office - -اطلب عرضًا تقديميًا أو تقريرًا أو جدول بيانات، وسينشئ الوكيل ملف `.pptx` / `.docx` / `.xlsx` حقيقيًا — بينما تعرضه لوحة المعاينة مباشرةً. كل تعديل يصل إلى المعاينة من تلقاء نفسه: الشرائح تمتلئ، والجداول تتشكّل، والأرقام تستقر في خلاياها. لم تعجبك الشريحة الرابعة؟ قل ذلك في الرسالة التالية — يعدّل الوكيل الملف نفسه في مكانه، وتلحق به المعاينة. بلا تصدير، وبلا تطبيق Office خارجي، ودون مغادرة Codeg. - -![وكيل يحرّر مستند Office بجانب معاينته الحية](../images/office-light.png#gh-light-mode-only) -![وكيل يحرّر مستند Office بجانب معاينته الحية](../images/office-dark.png#gh-dark-mode-only) - -## 💻 مساحة العمل - -مساحة عمل واحدة، وكل الوكلاء. أيًّا كان الوكيل الذي يعمل — Claude Code أو Codex أو Cursor — فهو يعمل داخل المحرّر نفسه، وبالفروقات الحيّة نفسها، وبعميل Git نفسه؛ وما ينتجه ملفات حقيقية في مستودعك، تتغيّر أمام عينيك. ويمكنك ربط أدلة أخرى بها — مكتبة مشتركة، أو خدمة مجاورة، أو مستودع التوثيق — فتتعامل معها شجرة الملفات والبحث والوكيل نفسه كمساحة عمل واحدة. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +### واجهة واحدة لكل الوكلاء + +يضم Codeg تسعة عشر وكيلاً مدمجًا، ويمكن لأي وكيل آخر متوافق مع ACP الانضمام من السجل العام أو عبر ملف distribution JSON الخاص به. ويتواصل Codeg مع كلٍّ منهم عبر Agent Client Protocol، فيحصلون جميعًا على المحادثة الغنية نفسها — بطاقات الأدوات، والفروقات الحيّة، والخطط، وطلبات الأذونات — بدلاً من طرفية تُضطر إلى التحديق فيها. فعّل «عرض الواجهة» لوكيلٍ ما، فيصبح قادرًا على الرد ببطاقات وجداول ورسوم بيانية تفاعلية. -**الجلسات.** استعِد ما لديك من سجل: جلسات سابقة من كل وكيل مثبَّت، تُستورَد بنقرة واحدة ويمكن استئنافها من حيث توقفت. وبمجرد دخولها لا تبقى جزرًا منفصلة — اذكر جلسة قديمة بـ `@` ليقرأها الوكيل الذي تحادثه، حتى لو كتبها وكيل آخر، فتُكمل جلسة Codex اليوم من حيث انتهت جلسة Claude Code الأسبوع الماضي. ومهما طالت المحادثة فإنها تُفتح على جولاتها الأخيرة، ويُحمَّل ما تبقّى تدريجيًا كلما رجعت إلى الأعلى. +[التوثيق ←](https://docs.codeg.app/guide/supported-agents) · [الوكلاء المخصّصون ←](https://docs.codeg.app/guide/custom-agents) · [عرض الواجهة ←](https://docs.codeg.app/guide/skills#cards-tables-and-charts-in-replies) -**الملفات.** تظهر تعديلات الوكيل على هيئة فروقات بجوار المحادثة فور وقوعها. افتح أي ملف في محرّر حقيقي مع إبراز لبنية الشيفرة، وأرسل ملفًا — أو تحديدًا منه فقط — إلى الوكيل مباشرةً بـ `⌘L`، وعايِن Markdown وHTML والصور ومستندات Office في اللوحة نفسها. + + + + واجهة واحدة لكل الوكلاء + +
+ +### كل جلسة قابلة للبحث + +يقرأ Codeg السجل الذي تحفظه واجهة CLI لكل وكيل على القرص: استورده بنقرة واحدة، وابحث فيه كله، واستأنف أي جلسة من حيث توقفت. اذكر جلسة قديمة بـ `@`، فيستطيع الوكيل الذي تحادثه قراءتها — حتى لو كتبها وكيل آخر. وامنح المحادثات وسومًا ملوّنة، عامةً أو خاصةً بمجلد واحد، ثم صفِّ الشريط الجانبي بها. + +[التوثيق ←](https://docs.codeg.app/guide/aggregation) · [الوسوم ←](https://docs.codeg.app/guide/workspace#tag-conversations) -**Git.** عميل كامل، لا مجرد عرض للحالة: أودِع مباشرةً من تبويب «التغييرات» — اكتب رسالة واضغط Enter — وبجواره السحب والجلب والدفع والإخفاء، وسجل يوضّح أي الإيداعات دُفعت. أنشئ الفروع وادمج وأعد الأساس وأعد الضبط وقارن مع فرع آخر، بل وحدِّث أي فرع أو ادفعه دون الانتقال إليه. وعند التعارض يُفتح محرّر دمج بثلاث لوحات تقبل فيه التغييرات كتلةً كتلة أو تكتب الحل بنفسك. أما أشجار العمل فتختصر العمل المتوازي إلى إجراء واحد — فرع جديد، ودليل خاص به، ومحادثة جديدة متجذّرة فيه، فيبني أسطول من الوكلاء ميزات مختلفة في الوقت نفسه دون أن يمسّ أحدهم ملفات الآخر. + + + + كل جلسة قابلة للبحث + +
+ +### التعاون متعدد الوكلاء + +اكتب `@`، اختر وكيلاً، ثم أرسل. يعمل كل وكيل تذكره في جلسة مستقلة خاصة به، جنبًا إلى جنب، ويتدفق عمله عائدًا إلى محادثتك — Claude Code يكتب المسودة بينما يراجع Codex — ويظهر الوكلاء الفرعيون كبطاقات تمتلئ أثناء عملهم. + +[التوثيق ←](https://docs.codeg.app/guide/multi-agent) -**حين يسوء الأمر.** الجولة الفاشلة لا تكتفي بقول إن شيئًا ما أخفق — ففي Claude Code وCodex تسمّي النوع: مشكلة اتصال، أو مشكلة وصول، أو بلوغ الحد، أو رفض للطلب، أو خلل في الخدمة — وتضع أسفل المُحرِّر شريطًا لا يحمل إلا ما يفيد فعلًا: إعادة المحاولة، أو تسجيل الدخول، أو جلسة جديدة. وما يعيد الوكيل محاولته من تلقاء نفسه يظهر بلون كهرماني ثم ينتهي إلى سطر واحد: «تمت الاستعادة». كما أن مؤشّر الاتصال أسفل المُحرِّر زرٌّ أيضًا: اضغطه لترى الحالة الحقيقية للجلسة، ومعه «إعادة اتصال» تستأنف الجلسة بدل أن تبدأ من جديد. + + + + التعاون متعدد الوكلاء + +
+ +### مهامّ قيد الانتظار تعمل دون إشراف + +دوّن ما تريد إنجازه وانصرف إلى شأنك. تحصل كل مهمة على شجرة عمل git وفرعٍ خاصّين بها، وتبدأ فورًا أو وفق جدول زمني، ثم تنتظر مراجعتك؛ اقبل الفروقات فيتولّى الوكيل دمجها، ويتحقق Codeg من git قبل أن يعدّها منجزة. ويمكن للوحة المستودع أن تضيفها نيابةً عنك: فهي تلتقط المشكلات وطلبات السحب حسب الوسم والكاتب، على فترات منتظمة أو عند وصول webhook. + +[التوثيق ←](https://docs.codeg.app/guide/tasks) · [المعالجة التلقائية ←](https://docs.codeg.app/guide/repository#let-it-pick-items-up-by-itself) + + + + + مهامّ قيد الانتظار تعمل دون إشراف + +
+ +### لوحة لا نهائية + +انشر عملك على مساحة مفتوحة: تصبح المحادثات والملفات والطرفيات والملاحظات بطاقاتٍ على لوحة، مجمّعةً حسب المجلد والوكيل، فيمكن لعدة وكلاء أن يعملوا جنبًا إلى جنب على مرأى منك. + +[التوثيق ←](https://docs.codeg.app/guide/canvas) + + + + + لوحة لا نهائية + +
+ +### سطح المكتب والخادم والأجهزة المحمولة وقنوات المحادثة + +شغّل Codeg كتطبيق سطح مكتب، أو كخادم مستضاف ذاتيًا تفتحه من أي متصفح، أو كحاوية Docker واحدة، وافتح خادمًا بعيدًا من تطبيق سطح المكتب في نافذة مساحة عمل خاصة به. وتُبقي تطبيقات iPhone وiPad وAndroid الأصلية — إضافةً إلى قنوات Telegram وLark وWeChat — وكلاءك في متناول يدك، بينما تبقى ملفاتك وجلساتك على أجهزة تتحكم بها أنت. + +[التوثيق ←](https://docs.codeg.app/getting-started/deployment) · [مساحات العمل البعيدة ←](https://docs.codeg.app/guide/workspace#desktop-and-browser) · [التطبيقات المحمولة ←](https://docs.codeg.app/getting-started/installation#mobile-apps) · [قنوات المحادثة ←](https://docs.codeg.app/guide/chat-channels) + + + + + سطح المكتب والخادم والأجهزة المحمولة وقنوات المحادثة + +
+ +### مستندات Office والبحث العلمي + +اطلب عرضًا تقديميًا أو تقريرًا أو جدول بيانات، وشاهد ملف `.pptx` أو `.docx` أو `.xlsx` الحقيقي يُعرض مباشرةً بجوار المحادثة، بينما تُفتح ملفات PDF في عارض خاص بها. أما مهارات البحث المضمَّنة — الفرضيات، وتصميم التجارب، والإحصاء، والبحث في الأدبيات — فتعمل مع أي وكيل. + +[التوثيق ←](https://docs.codeg.app/guide/office) · [البحث العلمي ←](https://docs.codeg.app/guide/research) + + + + + مستندات Office والبحث العلمي + +
+ +### استخدام المتصفح والحاسوب + +في تطبيق سطح المكتب، تُفتح الروابط في متصفح مدمج بجوار ملفاتك، بمقاس سطح المكتب أو الجهاز اللوحي أو الهاتف: سلّم الوكيل صفحةً أو عنصرًا أو لقطة شاشة أو خطأً من وحدة التحكم، أو دعه يقود صفحةً تشاركها. ومع «استخدام الحاسوب»، المتاح حاليًا كمعاينة، يستطيع الوكلاء أيضًا رؤية النوافذ التي تشاركها والتحكم فيها — و«إيقاف» على بُعد نقرة واحدة. + +[التوثيق ←](https://docs.codeg.app/guide/browser) · [استخدام الحاسوب ←](https://docs.codeg.app/guide/computer-use) + + + + + استخدام المتصفح والحاسوب + +
+ +### الحلقة الهندسية الكاملة + +محرّر، وفروقات حيّة وأخرى بالعرض جنبًا إلى جنب، وعميل git كامل مع محرّر دمج بثلاث لوحات، وأشجار عمل بنقرة واحدة، وطرفية مدمجة، وعروض مقسّمة — كلها بجوار الوكيل، وعلى الملفات الحقيقية في مستودعك. + +[التوثيق ←](https://docs.codeg.app/guide/workspace) · [Git وأشجار العمل ←](https://docs.codeg.app/guide/git) + + + + + الحلقة الهندسية الكاملة + +
-## 📱 iPhone وiPad وAndroid +**ويتضمن أيضًا:** + +- **[لوحة المستودع](https://docs.codeg.app/guide/repository)** — المشكلات وطلبات السحب والفحوصات وعمليات الدمج لـ GitHub وGitLab وGitea وForgejo؛ ويمكن لأي مشكلة أو طلب سحب أن يتحول إلى مهمة قيد الانتظار +- **[الأتمتة](https://docs.codeg.app/guide/automations)** — احفظ مربع الإدخال بإعداداته وشغّله بلا واجهة، وفق جدول cron أو عند الطلب +- **[استخدام الرموز](https://docs.codeg.app/guide/token-usage)** — الاتجاهات، ونسبة إصابة التخزين المؤقت، وخريطة حرارية للنشاط، والاستخدام حسب المجلد والوكيل والنموذج والجلسة، وما سيكلّفه ذلك بأسعار API المعلنة +- **[التفريع والتوجيه](https://docs.codeg.app/guide/workspace#follow-along-%E2%80%94-the-conversation)** — مع الوكلاء الذين يدعمون ذلك، فرّع محادثة من رد مكتمل، أو أرسل رسالة إلى دورٍ لا يزال قيد التنفيذ +- **[المهارات](https://docs.codeg.app/guide/skills) و[MCP](https://docs.codeg.app/guide/mcp)** — حزم مهارات لكل وكيل، وفحص MCP المحلي، والبحث في السجل والتثبيت منه +- **[مُنشئ المشروع](https://docs.codeg.app/guide/project-boot)** — أنشئ مشروعًا جديدًا بصريًا، مع معاينة حية +- **[الإشعارات](https://docs.codeg.app/reference/settings/general#desktop-notifications)** — إشعارات سطح المكتب، وأصوات التنبيه، وزر شريط مهام يومض أو أيقونة Dock تقفز عندما ينتهي دورٌ أو يحتاجك وكيل +- **[اجعله على ذوقك](https://docs.codeg.app/reference/settings/appearance)** — اثنتا عشرة سمة يمكنك إعادة تلوينها رمزًا لونيًا تلو الآخر، وخلفيات، واستدارة الزوايا، وعرض المحادثة، وCSS مخصّص، وحيوان أليف على سطح المكتب — بأيٍّ من لغات الواجهة العشر +- **[النسخ الاحتياطي والمزامنة](https://docs.codeg.app/reference/settings/system#backup-restore)** — نسخ احتياطية مشفّرة، ومزامنة الإعدادات بين الأجهزة عبر ملف أو خادم WebDAV الخاص بك +- **[مخطط URL](../../docs/url-scheme.md)** — يفتح `codeg://session/` محادثةً من تطبيق آخر (سطح المكتب) +- **[سطر الأوامر](../../docs/cli.md)** — يشغّل `codeg-cli` موجّهًا عبر Codeg قيد التشغيل، على سطح المكتب أو الخادم، من سكربت أو مهمة CI، ويطبع الرد أو أحداث JSON +- **والمزيد** — يضيف كل إصدار تقريبًا شيئًا جديدًا؛ و[ملاحظات الإصدار](https://github.com/spacering-net/codeg/releases) هي القائمة الكاملة -ابتعد عن مكتبك، لا عن عملك. يتصل تطبيقا iOS وAndroid الأصليان بنسخة Codeg التي تشغّلها أصلًا — **خدمة الويب** في تطبيق سطح المكتب، أو خادم `codeg-server` الخاص بك — ومن هناك تبدأ الجلسات، وتتابع الردود واستدعاءات الأدوات لحظة بلحظة، وتردّ على طلبات الأذونات، وتتصفّح المشاريع والفروع. لا شيء ينتقل إلى الهاتف: ملفاتك وواجهات الوكلاء ومحادثاتك تبقى على الجهاز الذي يشغّل Codeg، ويُحفَظ رمز الوصول في Keychain على iOS أو عبر Android Keystore. التطبيقان مفتوحا المصدر ([iOS](https://github.com/xintaofei/codeg-ios) و[Android](https://github.com/xintaofei/codeg-android))؛ ويتم الاقتران في ثلاث خطوات تجدها في [التطبيقات المحمولة](https://docs.codeg.app/getting-started/installation#mobile-apps). +## 🤖 الوكلاء المدعومون -| iPhone وiPad | Android | -| :---: | :---: | -| بدء جلسة من تطبيق Codeg على iOS | ردّ وكيل يتدفق مباشرةً داخل تطبيق Codeg على Android | +يتواصل Codeg مع كل وكيل عبر [Agent Client Protocol](https://agentclientprotocol.com)، فيحصل كلٌّ منهم على الواجهة المنظَّمة نفسها. ويأتي بتسعة عشر وكيلاً مدمجًا، يتولّى تثبيت معظمهم وتثبيت إصداراتهم وتحديثهم نيابةً عنك: -## ✨ أبرز المزايا +

+ Claude Code   + Codex   + Gemini CLI   + OpenClaw   + OpenCode   + Cline   + Hermes Agent   + CodeBuddy   + Kimi Code   + Pi   + Grok   + Cursor   + DeepSeek Harness   + Qoder   + Google Antigravity   + Kiro CLI   + ZCode   + TRAE CLI   + Command Code   + + أي وكيل ACP +

-- **[تجميع المحادثات](https://docs.codeg.app/guide/aggregation)** — استورد جلسات كل الوكلاء المدعومين إلى مساحة عمل موحّدة قابلة للبحث، وتابع أيًّا منها من حيث توقفت -- **[التعاون متعدد الوكلاء](https://docs.codeg.app/guide/multi-agent)** — اذكر أي وكيل بـ `@` لتفويضه: وكلاء فرعيون من أنواع مختلفة يعملون كجلسات مستقلة، بالتوازي، داخل مهمة واحدة -- **[المهام قيد الانتظار](https://docs.codeg.app/guide/tasks)** — دوّن ما ينبغي عمله ويتولّى الوكلاء الطابور مهمةً مهمة، كل مهمة في شجرة عمل خاصة بها، ولا تصل إلى فرعك إلا بعد مراجعتك -- **[الوكلاء المخصّصون](https://docs.codeg.app/guide/custom-agents)** — سجّل أي وكيل آخر متوافق مع ACP من السجل العام أو من ملف distribution JSON؛ يتولّى Codeg تثبيته وتسجيل تاريخه، ويعامله كوكيل مدمج -- **[مساحة العمل](https://docs.codeg.app/guide/workspace)** — حلقة هندسية كاملة بجوار الوكيل: شجرة الملفات، المحرّر والفروقات، تغييرات git، الإيداع، وطرفية مدمجة، و[عدة مجلدات مربوطة في مساحة عمل واحدة](https://docs.codeg.app/guide/workspace#work-across-several-folders) -- **[العرض المُقسَّم](https://docs.codeg.app/guide/workspace#split-the-conversation-view-into-groups)** — قسّم منطقة المحادثة إلى أي عدد من مجموعات التبويبات، واسحب التبويبات والفواصل بينها، واستعد التخطيط — مع المسودات — بعد إعادة التشغيل -- **[Git والـ worktrees](https://docs.codeg.app/guide/git)** — راجع التغييرات وأودعها، وأدر حسابات Git البعيدة، واعمل بالتوازي عبر تدفقات `git worktree` المدمجة -- **[استخدام الرموز](https://docs.codeg.app/guide/token-usage)** — تقرير كامل خلف العدّاد في شريط الحالة: الاتجاهات ونسبة إصابة التخزين المؤقت، وخريطة حرارية للنشاط، وتوزيعات حسب المجلد والوكيل والنموذج والجلسة -- **[قنوات الدردشة](https://docs.codeg.app/guide/chat-channels)** — قُد وكلاءك من Telegram وLark (Feishu) وWeChat: أنشئ المهام، ووافق على الأذونات، وتابع التحديثات لحظيًا -- **[الأتمتة](https://docs.codeg.app/guide/automations)** — احفظ إعدادًا كاملاً للمُحرِّر كمهمة أتمتة قابلة لإعادة الاستخدام تعمل بلا واجهة، وفق جدول cron أو عند الطلب — إما ببدء جلسة، أو بترك مهمة قيد الانتظار لتراجعها لاحقًا -- **[مستندات Office](https://docs.codeg.app/guide/office)** — أنشئ وحلِّل وراجع وحرِّر ملفات `.docx` / `.xlsx` / `.pptx` عبر `officecli` المدمج، مع معاينة حية داخل التبويب -- **[البحث العلمي](https://docs.codeg.app/guide/research)** — مهارات بحثية مدمجة (توليد الفرضيات، تصميم التجارب، الإحصاء، التمثيل المرئي، التقييم النقدي، البحث في الأدبيات) يمكن لأي وكيل استدعاؤها -- **[مُنشئ المشروع](https://docs.codeg.app/guide/project-boot)** — أنشئ مشاريع جديدة بصريًا مع معاينة حية، ثم افتحها مباشرةً في مساحة العمل -- **[MCP](https://docs.codeg.app/guide/mcp) & [المهارات](https://docs.codeg.app/guide/skills)** — فحص الخوادم المحلية مع البحث والتثبيت من السجل، ومهارات تُدار على النطاق العام أو نطاق المشروع -- **[اجعله على ذوقك](https://docs.codeg.app/reference/settings/appearance)** — أعد تلوين أي من الثيمات الاثني عشر رمزًا لونيًا تلو الآخر، واضبط استدارة الزوايا في التطبيق كله، واستورد الثيمات وصدّرها بصيغة shadcn JSON، أو اكتب CSS خاصًا بك -- **[سطح المكتب والخادم وDocker](https://docs.codeg.app/getting-started/deployment)** — تطبيق سطح مكتب أصلي، أو خادم `codeg-server` مستقل تصل إليه من أي متصفح، أو `docker compose up` -- **[iPhone وiPad وAndroid](https://docs.codeg.app/getting-started/installation#mobile-apps)** — تطبيقات محمولة أصلية تتصل بسطح مكتبك أو خادمك: ابدأ الجلسات، وتابع الردود المتدفقة، ووافق على الأذونات، وتصفّح المشاريع من أي مكان +ليس في القائمة؟ اختر أي وكيل من سجل ACP العام أو الصق ملف distribution JSON الخاص به — فيتولّى Codeg تثبيته، ويتحقق من قدرته على الإقلاع، ويعامله كوكيل مدمج. متطلبات التشغيل، وأين يحفظ كل وكيل جلساته: [الوكلاء المدعومون](https://docs.codeg.app/guide/supported-agents). -## 📦 التثبيت والتشغيل +## 📦 التثبيت -**سطح المكتب** — نزّل المثبّت الخاص بـ macOS أو Windows أو Linux من [Releases](https://github.com/xintaofei/codeg/releases)، ثم اتبع [التثبيت](https://docs.codeg.app/getting-started/installation). +**سطح المكتب** — تجد مثبّتات macOS وWindows وLinux في [Releases](https://github.com/spacering-net/codeg/releases/latest)؛ وخطوات الإعداد في [التثبيت](https://docs.codeg.app/getting-started/installation). **الخادم** — شغّل Codeg بلا واجهة وادخل إليه من أي متصفح. على Linux أو macOS: ```bash -curl -fsSL https://raw.githubusercontent.com/xintaofei/codeg/main/install.sh | bash +curl -fsSL https://raw.githubusercontent.com/spacering-net/codeg/main/install.sh | bash CODEG_STATIC_DIR=/usr/local/share/codeg/web codeg-server ``` على Windows، في PowerShell: ```powershell -irm https://raw.githubusercontent.com/xintaofei/codeg/main/install.ps1 | iex -$env:CODEG_STATIC_DIR="$env:LOCALAPPDATA\codeg\web"; codeg-server +irm https://raw.githubusercontent.com/spacering-net/codeg/main/install.ps1 | iex +$env:CODEG_STATIC_DIR="$env:LOCALAPPDATA\codeg-server\web"; codeg-server ``` **Docker** — الخادم نفسه، داخل حاوية واحدة: ```bash -docker run -d -p 3080:3080 -v codeg-data:/data ghcr.io/xintaofei/codeg:latest +docker run -d -p 3080:3080 -v codeg-data:/data ghcr.io/spacering-net/codeg:latest ``` +في الحالتين، افتح `http://:3080` في المتصفح وأدخل رمز الوصول الذي يطبعه الخادم عند بدء تشغيله (وفي الحاوية يعرضه `docker logs`)، أو عيّن `CODEG_TOKEN` لتختار رمزك بنفسك. + **الهاتف واللوحي** — ثبّت [تطبيق iOS](https://apps.apple.com/app/codeg-client/id6785199071) أو [حزمة Android APK](https://github.com/xintaofei/codeg-android/releases/latest)، ثم وجّهه إلى **خدمة الويب** في تطبيق سطح المكتب أو إلى خادم `codeg-server` الخاص بك: العنوان والرمز، وانتهى الأمر. خطوات الاقتران في [التطبيقات المحمولة](https://docs.codeg.app/getting-started/installation#mobile-apps). -يغطي [النشر](https://docs.codeg.app/getting-started/deployment) استخدام Compose والملفات التنفيذية الجاهزة والبناء من المصدر والتحديث في المكان؛ وتجد متغيرات البيئة في [الإعداد](https://docs.codeg.app/getting-started/configuration). ولبناء Codeg نفسه: [التطوير](https://docs.codeg.app/reference/development) و[البنية](https://docs.codeg.app/reference/architecture). +يغطي [النشر](https://docs.codeg.app/getting-started/deployment) استخدام Compose والملفات التنفيذية الجاهزة والبناء من المصدر والتحديث في المكان؛ وتجد متغيرات البيئة في [الإعداد](https://docs.codeg.app/getting-started/configuration). + +## 👥 المجتمع والدعم + +- **WeChat** — امسح رمز QR للانضمام إلى مجموعتنا للنقاشات والملاحظات والتحديثات: -## 🔒 الخصوصية والأمان + + + WeChat + -- محلي أولاً بشكل افتراضي في التحليل والتخزين وعمليات المشروع — ولا يحدث أي وصول للشبكة إلا عبر إجراء تبدأه أنت -- وضعا الويب والخادم محميّان بمصادقة قائمة على الرموز -- دعم بروكسي النظام لبيئات المؤسسات +- **المشكلات** — وجدت خللًا أو تفتقد ميزةً ما؟ [افتح مشكلة](https://github.com/spacering-net/codeg/issues). +- **الخصوصية** — محلي أولاً: يبقى التحليل والتخزين وعمليات المشروع على جهازك، ووضعا الويب والخادم محميّان بمصادقة قائمة على الرموز. التفاصيل في [الخصوصية والأمان](https://docs.codeg.app/reference/privacy). +- **LinuxDO** — شكراً لمجتمع [LinuxDO](https://linux.do) على دعمه. +- **أظهر دعمك** — [امنح المستودع نجمة](https://github.com/spacering-net/codeg) لتتابع جديده. -التفاصيل في [الخصوصية والأمان](https://docs.codeg.app/reference/privacy). +## 🤝 المساهمة -## 👥 المجتمع +نرحّب بفتح المشكلات وتقديم طلبات السحب. ولبناء Codeg بنفسك، ابدأ بـ [التطوير](https://docs.codeg.app/reference/development) و[البنية](https://docs.codeg.app/reference/architecture). -- امسح رمز QR أدناه للانضمام إلى مجموعة WeChat الخاصة بنا للنقاشات والملاحظات والتحديثات + + المساهمون في Codeg + -WeChat -WeChat +## ⭐ سجل النجوم -- شكراً لمجتمع [LinuxDO](https://linux.do) على دعمه + + + + + Star History Chart + + ## 🙏 شكر وتقدير @@ -221,6 +363,8 @@ docker run -d -p 3080:3080 -v codeg-data:/data ghcr.io/xintaofei/codeg:latest - [Superpowers](https://github.com/obra/superpowers) — يُشغِّل وحدة مهارات الخبراء في Codeg - [OfficeCLI](https://github.com/iOfficeAI/OfficeCLI) — يُشغِّل سير عمل مستندات Office في Codeg - [scientific-agent-skills](https://github.com/K-Dense-AI/scientific-agent-skills) — يُشغِّل مهارات البحث العلمي في Codeg (مجموعة فرعية مرخّصة بموجب MIT) +- [json-render](https://github.com/vercel-labs/json-render) — يُشغِّل بطاقات «عرض الواجهة» وجداولها ورسومها البيانية في Codeg +- [cua-driver](https://github.com/trycua/cua) — يُشغِّل «استخدام الحاسوب» في Codeg ## 📜 الترخيص diff --git a/docs/readme/README.de.md b/docs/readme/README.de.md index ece6d29839..32c9361355 100644 --- a/docs/readme/README.de.md +++ b/docs/readme/README.de.md @@ -1,32 +1,44 @@ -# Codeg - -[![Release](https://img.shields.io/github/v/release/xintaofei/codeg)](https://github.com/xintaofei/codeg/releases) -[![Docs](https://img.shields.io/badge/docs-docs.codeg.app-3451b2)](https://docs.codeg.app) -[![License](https://img.shields.io/github/license/xintaofei/codeg)](../../LICENSE) - -

- English | - 简体中文 | - 繁體中文 | - 日本語 | - 한국어 | - Español | - Deutsch | - Français | - Português | - العربية +

+ Codeg logo Codeg +

+ +

+ GitHub stars + Latest release + Total downloads + License + Documentation + Platforms: macOS, Windows, Linux, Docker, iOS, Android

-Codeg (Code Generation) ist ein Multi-Agent-Coding-Workspace: Führe jeden KI-Coding-Agenten an einem Ort aus — und lass sie zusammenarbeiten. +

+ English · 简体中文 · 繁體中文 · 日本語 · 한국어 · Español · Deutsch · Français · Português · العربية +

-Codeg bündelt die Sitzungen aller unterstützten Agenten-CLIs in einem durchsuchbaren Workspace und lässt einen Haupt-Agenten innerhalb einer Aufgabe an Sub-Agenten anderer Typen delegieren. Arbeit, bei der du nicht danebensitzen willst, kommt stattdessen aufs To-do-Board — jede Aufgabe in ihrem eigenen Branch, unbeaufsichtigt laufend und wartend auf deine Freigabe, bevor sie landet. Codeg läuft als Desktop-App, eigenständiger Server oder Docker-Container, dazu native iOS- und Android-Clients für die Zeit fernab vom Schreibtisch; fünfzehn Agenten sind eingebaut, und jeden weiteren ACP-kompatiblen Agenten kannst du selbst registrieren. +

+ Der Multi-Agent-Coding-Workspace.
+ Führe jeden KI-Coding-Agenten an einem Ort aus — und lass sie zusammenarbeiten. +

-![Workspace](../images/workspace-light.png#gh-light-mode-only) -![Workspace](../images/workspace-dark.png#gh-dark-mode-only) +

Codeg herunterladen · Dokumentation

-## 📖 Dokumentation +

+ + + Der Codeg-Workspace: eine Unterhaltung mit einem Agenten, daneben seine Live-Diffs und die Dateien des Projekts + +

-**Die vollständige Dokumentation liegt unter [docs.codeg.app](https://docs.codeg.app)** — [Erste Schritte](https://docs.codeg.app/getting-started/) · [Guide](https://docs.codeg.app/guide/) · [Referenz](https://docs.codeg.app/reference/) + + + + + + + + + +
🧩 Eine Oberfläche für alle Agenten
Neunzehn Agenten sind eingebaut, und jeder ACP-Agent kann dazukommen — alle dargestellt als dieselbe strukturierte Unterhaltung, nicht als Terminal.
🔎 Sitzungen zum Mitnehmen
Importiere, durchsuche und setze die Historie fort, die jeder Agent auf der Festplatte ablegt, und übergib sie dann an einen anderen Agenten.
🤝 Agenten, die zusammenarbeiten
Delegiere agentenübergreifend mit einem @, oder stell To-dos in die Warteschlange, die unbeaufsichtigt in ihren eigenen Worktrees laufen.
🌍 Wo immer du arbeitest
Desktop-App, selbst gehosteter Server oder Docker, iPhone, iPad und Android — und Telegram, Lark oder WeChat.
## 💖 Sponsoren @@ -45,13 +57,6 @@ Codeg bündelt die Sitzungen aller unterstützten Agenten-CLIs in einem durchsuc Vielen Dank an 合租巴士 für die Unterstützung dieses Projekts! 合租巴士 ist eine zuverlässige und effiziente KI-Relay-Plattform, die hochstabiles Relay für gängige Modelle wie Codex und Claude Code bietet. Das Aufladeverhältnis ist transparent (1:1), mit Codex-Ratenzuschüssen ab nur 0,08. Treten Sie der Gruppe über die offizielle Website bei und erhalten Sie 5 USD Testguthaben. - - - LQ router
- LQ router - - Vielen Dank an den Relay-Dienst LQ router für die Unterstützung dieses Projekts! LQ router ist ein professioneller KI-Relay-Dienst auf Enterprise-Niveau, der Unternehmen und einzelnen Entwicklern einen stabilen, effizienten und kostengünstigen Zugang zu KI-Modell-APIs bietet. Die Plattform unterstützt führende Modelle wie GPT, Claude, Grok und Gemini, mit Abrechnungsfaktoren für GPT Pro von nur 0,1×. Über die offizielle Website der Gruppe beitreten und 1 USD Testguthaben erhalten. - APIMart
@@ -72,10 +77,10 @@ Codeg bündelt die Sitzungen aller unterstützten Agenten-CLIs in einem durchsuc - Fluxion AI
- Fluxion AI + Sidrune AI
+ Sidrune AI - Vielen Dank an Fluxion AI für die Unterstützung dieses Projekts! Fluxion AI bietet über eine einzige einheitliche API schnellen, zuverlässigen und kosteneffizienten Zugriff auf GPT, Claude, Gemini und weitere führende KI-Modelle. Neue Nutzer erhalten über unseren speziellen Link 3 USD API-Guthaben. + Vielen Dank an Sidrune AI für die Unterstützung dieses Projekts! Sidrune AI bietet über eine einzige API Zugriff auf GPT, Claude und weitere gängige KI-Modelle. Neue Nutzer, die sich über unseren speziellen Link mit dem Promo-Code SDRCODEG registrieren, erhalten 3 USD API-Guthaben. @@ -88,132 +93,269 @@ Codeg bündelt die Sitzungen aller unterstützten Agenten-CLIs in einem durchsuc > Möchten Sie Codeg-Sponsor werden? [Schreiben Sie uns gerne eine E-Mail.](mailto:itpkcn@gmail.com) -## 🤖 Unterstützte Agenten - -Claude Code · Codex · Gemini · OpenClaw · OpenCode · Cline · Hermes · CodeBuddy · Kimi Code · Pi · Grok · Cursor · DeepSeek Harness · Qoder · Google Antigravity - -Die meisten davon installiert, fixiert und aktualisiert Codeg für dich. Die vollständige Liste, die Laufzeit-Anforderungen jedes Agenten und den Ablageort seiner Sitzungen findest du unter [Unterstützte Agenten](https://docs.codeg.app/guide/supported-agents). - -Nicht dabei? Füge ihn selbst hinzu. Wähle einen Agenten aus der öffentlichen ACP-Registry oder füge sein Distribution-JSON ein — Codeg installiert ihn, prüft vorab, ob er startet, und behandelt ihn wie einen eingebauten: Er erscheint im Picker, nimmt `@`-Delegation und Skills an, und seine Unterhaltungen werden aufgezeichnet und durchsuchbar, selbst wenn der Agent selbst keine Historie führt. → [Eigene Agenten](https://docs.codeg.app/guide/custom-agents) - -## 🤝 Multi-Agent-Zusammenarbeit - -Multi-Agent-Zusammenarbeit, reduziert auf einen Tastendruck: `@` tippen, Agenten auswählen, absenden. Um die Orchestrierung kümmert sich Codeg — es startet jeden erwähnten Agenten als eigene Sitzung, übergibt die Aufgabe und streamt die Arbeit zurück in den Thread, in dem du ohnehin bist. Erwähne zwei, und sie laufen nebeneinander: Claude Code schreibt, Codex prüft. Kein Kontextwechsel, kein Copy-and-paste zwischen Terminals. +## ✨ Funktionen -Und wenn ein Agent eigene Sub-Agenten startet — Claude Code, Codex, Grok und OpenCode tun das alle — bekommt jedes Kind eine eigene Karte, die sich während der Arbeit füllt, statt erst am Ende auf einen Schlag zu erscheinen. Öffne eine, und du liest die Sitzung des Kindes selbst. - -![Eine Aufgabe wird aus einer einzigen Codeg-Unterhaltung an Sub-Agenten delegiert](../images/collaboration-light.gif#gh-light-mode-only) -![Eine Aufgabe wird aus einer einzigen Codeg-Unterhaltung an Sub-Agenten delegiert](../images/collaboration-dark.gif#gh-dark-mode-only) - -## ✅ To-dos - -Nicht jede Arbeit braucht dich als Zuschauer. Schreib sie auf — ein Titel, eine Beschreibung, der Agent, der sie erledigen soll — und Codeg gibt ihr **eine eigene Kopie des Codes**: ein Git-Worktree neben deinem Projekt, auf einem eigenen Branch. Mehrere laufen gleichzeitig, ohne sich gegenseitig oder den Baum zu berühren, in dem du gerade arbeitest. Plane eine für heute Abend, oder lass einen Ordner seine Warteschlange selbst abarbeiten, bis zu dem Limit, das du festlegst. - -Eine fertige Aufgabe merged sich nicht selbst. Sie wandert in die Review-Spalte und wartet: Diff lesen, für eine weitere Runde zurückschicken oder annehmen — und der Agent bringt sie ein, holt dafür erst deinen Base-Branch in sein Worktree und löst die Konflikte dort. Danach glaubt Codeg dem Agenten nicht aufs Wort, sondern prüft Git selbst: Ein Merge, den es nicht bestätigen kann, geht zurück ins Review, statt Erfolg zu melden. - -![Das To-do-Board, auf dem Aufgaben von „To-do“ über „In Arbeit“ nach „Fertig“ wandern](../images/task-light.png#gh-light-mode-only) -![Das To-do-Board, auf dem Aufgaben von „To-do“ über „In Arbeit“ nach „Fertig“ wandern](../images/task-dark.png#gh-dark-mode-only) - -## 🪟 Split-Ansicht - -Eine Tab-Leiste reicht nicht immer. Ein Rechtsklick auf einen Unterhaltungs-Tab teilt die Ansicht **nach rechts** oder **nach unten** — beliebig oft: zwei Panes nebeneinander, drei gestapelt, ein Raster. Jede Gruppe ist ein vollwertiger Workspace — eigene Tabs, eigener Header, eigener Button für eine neue Unterhaltung — so refaktoriert Claude Code im einen Pane, während Codex im nächsten einen Diff prüft. - -Zieh einen Tab von einer Gruppe in die andere: Seine Sitzung streamt während des Umzugs weiter. Zieh den Teiler zwischen zwei Gruppen, um den Platz anders aufzuteilen. Das Layout wird pro Workspace gemerkt, Entwürfe inklusive — öffne Codeg wieder, und die Aufteilung ist zurück, mit dem nie abgesendeten Text noch im Eingabefeld. - -![Der Unterhaltungsbereich wird in ein Raster aus Tab-Gruppen geteilt](../images/split-light.gif#gh-light-mode-only) -![Der Unterhaltungsbereich wird in ein Raster aus Tab-Gruppen geteilt](../images/split-dark.gif#gh-dark-mode-only) - -## 📄 Office-Dokumente - -Bitte um ein Deck, einen Bericht oder eine Arbeitsmappe, und der Agent baut eine echte `.pptx` / `.docx` / `.xlsx` — während der rechte Bereich sie live rendert. Jede Änderung landet von selbst in der Vorschau: Folien füllen sich, Tabellen nehmen Gestalt an, Zahlen landen in den Zellen. Folie 4 gefällt nicht? Sag es in der nächsten Nachricht — der Agent bearbeitet dieselbe Datei an Ort und Stelle, die Vorschau zieht nach. Kein Export, keine externe Office-App, kein Verlassen von Codeg. - -![Ein Agent bearbeitet ein Office-Dokument neben dessen Live-Vorschau](../images/office-light.png#gh-light-mode-only) -![Ein Agent bearbeitet ein Office-Dokument neben dessen Live-Vorschau](../images/office-dark.png#gh-dark-mode-only) - -## 💻 Workspace - -Ein Workspace, alle Agenten. Egal welcher gerade arbeitet — Claude Code, Codex, Cursor —, er tut es im selben Editor, mit denselben Live-Diffs und demselben Git-Client. Und was dabei entsteht, sind echte Dateien in deinem Repository, die sich vor deinen Augen verändern. Binde weitere Verzeichnisse ein — eine gemeinsame Bibliothek, einen Nachbardienst, das Docs-Repository — und Dateibaum, Suche und der Agent selbst behandeln sie als einen Workspace. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +### Eine Oberfläche für alle Agenten + +Neunzehn Agenten sind eingebaut, und jeder weitere ACP-Agent kann aus der öffentlichen Registry oder über sein Distribution-JSON dazukommen. Codeg spricht mit jedem von ihnen über das Agent Client Protocol, sodass alle dieselbe reichhaltige Unterhaltung bekommen — Tool-Karten, Live-Diffs, Pläne und Berechtigungsanfragen — statt eines Terminals, vor dem du die Augen zusammenkneifst. Aktiviere UI-Rendering für einen Agenten, und er kann mit interaktiven Karten, Tabellen und Diagrammen antworten. -**Sitzungen.** Hol dir die Historie, die du schon hast: vergangene Sitzungen aller installierten Agenten, mit einem Klick importiert und dort fortsetzbar, wo du aufgehört hast. Einmal drin, bleiben sie keine getrennten Silos — erwähne eine alte Sitzung mit `@`, und der Agent, mit dem du gerade sprichst, kann sie lesen, auch wenn ein anderer Agent sie geschrieben hat. So macht der heutige Codex-Lauf da weiter, wo die Claude-Code-Sitzung von letzter Woche aufgehört hat. Wie lang ein Verlauf auch wird: Er öffnet sich mit den jüngsten Runden und lädt den Rest nach, während du nach oben scrollst. +[Doku →](https://docs.codeg.app/guide/supported-agents) · [Eigene Agenten →](https://docs.codeg.app/guide/custom-agents) · [UI-Rendering →](https://docs.codeg.app/guide/skills#cards-tables-and-charts-in-replies) -**Dateien.** Die Änderungen des Agenten erscheinen als Diffs neben der Unterhaltung, sobald sie landen. Öffne jede Datei in einem echten Editor mit Syntaxhervorhebung, schick eine Datei — oder nur eine Auswahl — mit `⌘L` direkt an den Agenten, und zeig dir Markdown, HTML, Bilder und Office-Dokumente in derselben Ansicht in der Vorschau an. + + + + Eine Oberfläche für alle Agenten + +
+ +### Jede Sitzung durchsuchbar + +Codeg liest die Historie, die jede Agenten-CLI auf der Festplatte ablegt: Importiere sie mit einem Klick, durchsuche alles und setze jede Sitzung dort fort, wo sie aufgehört hat. Erwähne eine alte Sitzung mit `@`, und der Agent, mit dem du gerade sprichst, kann sie lesen — selbst eine, die ein anderer Agent geschrieben hat. Versieh Unterhaltungen mit farbigen Tags, global oder nur für einen Ordner, und filtere die Seitenleiste danach. + +[Doku →](https://docs.codeg.app/guide/aggregation) · [Tags →](https://docs.codeg.app/guide/workspace#tag-conversations) -**Git.** Ein vollwertiger Client, keine Statusanzeige: committe direkt aus dem Tab „Änderungen“ — Nachricht tippen, Enter — mit Pull, Fetch, Push und Stash daneben und einer Historie, die zeigt, welche Commits gepusht sind. Branches anlegen, mergen, rebasen, zurücksetzen oder gegen einen anderen Branch diffen — und jeden Branch aktualisieren oder pushen, ohne zu ihm zu wechseln. Konflikte öffnen einen dreispaltigen Merge-Editor, in dem du Hunk für Hunk übernimmst oder die Lösung selbst tippst. Und Worktrees machen paralleles Arbeiten zu einer einzigen Aktion — ein neuer Branch, ein eigenes Verzeichnis und eine frische Unterhaltung darin, sodass eine ganze Flotte von Agenten gleichzeitig an verschiedenen Features baut, ohne einander in die Quere zu kommen. + + + + Jede Sitzung durchsuchbar + +
+ +### Multi-Agent-Zusammenarbeit + +`@` tippen, Agenten auswählen, absenden. Die erwähnten Agenten laufen jeweils als eigene Sitzung nebeneinander und streamen zurück in deinen Thread — Claude Code entwirft, während Codex prüft — und Sub-Agenten erscheinen als Karten, die sich während der Arbeit füllen. + +[Doku →](https://docs.codeg.app/guide/multi-agent) -**Wenn etwas schiefgeht.** Ein gescheiterter Turn sagt nicht bloß, dass etwas schiefging — bei Claude Code und Codex nennt er die Art: ein Verbindungsproblem, ein Zugriffsproblem, ein erreichtes Limit, eine abgelehnte Anfrage, ein Dienstproblem — und legt unter den Composer einen Streifen mit dem, was wirklich hilft: Wiederholen, Anmelden oder eine neue Sitzung. Versuche, die der Agent von sich aus unternimmt, erscheinen bernsteinfarben und schrumpfen am Ende auf eine einzige Zeile „Wiederhergestellt“. Und die Verbindungsanzeige unter dem Composer ist ein Button: ein Klick zeigt den echten Zustand der Sitzung — samt einem Reconnect, das fortsetzt statt neu zu beginnen. + + + + Multi-Agent-Zusammenarbeit + +
+ +### To-dos, die unbeaufsichtigt laufen + +Schreib eine Aufgabe auf und kümmere dich um anderes. Jedes To-do bekommt einen eigenen Git-Worktree und Branch, startet sofort oder nach Zeitplan und wartet dann auf deine Prüfung; nimm den Diff an, und der Agent bringt ihn ein — Codeg prüft in Git nach, bevor es das To-do für erledigt erklärt. Das Repository-Panel kann sie dir sogar anlegen: Es greift Issues und Pull Requests nach Label und Autor auf, nach Zeitplan oder sobald ein Webhook eintrifft. + +[Doku →](https://docs.codeg.app/guide/tasks) · [Automatische Verarbeitung →](https://docs.codeg.app/guide/repository#let-it-pick-items-up-by-itself) + + + + + To-dos, die unbeaufsichtigt laufen + +
+ +### Unendlicher Canvas + +Breite deine Arbeit räumlich aus: Unterhaltungen, Dateien, Terminals und Notizen werden zu Karten auf einem Board, gruppiert nach Ordner und Agent, sodass mehrere Agenten gut sichtbar nebeneinander laufen können. + +[Doku →](https://docs.codeg.app/guide/canvas) + + + + + Unendlicher Canvas + +
+ +### Desktop, Server, Mobil & Chat + +Betreibe Codeg als Desktop-App, als selbst gehosteten Server, den du in jedem Browser öffnest, oder als einzelnen Docker-Container; aus der Desktop-App öffnest du einen entfernten Server zudem als Remote-Arbeitsbereich in einem eigenen Fenster. Native Clients für iPhone, iPad und Android — dazu Kanäle für Telegram, Lark und WeChat — halten deine Agenten in Reichweite, während deine Dateien und Sitzungen auf Rechnern bleiben, die du kontrollierst. + +[Doku →](https://docs.codeg.app/getting-started/deployment) · [Remote-Arbeitsbereiche →](https://docs.codeg.app/guide/workspace#desktop-and-browser) · [Mobile Apps →](https://docs.codeg.app/getting-started/installation#mobile-apps) · [Chat-Kanäle →](https://docs.codeg.app/guide/chat-channels) + + + + + Desktop, Server, Mobil & Chat + +
+ +### Office-Dokumente & Forschung + +Bitte um eine Präsentation, einen Bericht oder eine Arbeitsmappe und sieh zu, wie die echte `.pptx`, `.docx` oder `.xlsx` live neben der Unterhaltung gerendert wird; PDFs öffnen sich in einem eigenen Viewer. Mitgelieferte Forschungs-Skills — Hypothesenbildung, Versuchsplanung, Statistik, Literatursuche — funktionieren mit jedem Agenten. + +[Doku →](https://docs.codeg.app/guide/office) · [Forschung →](https://docs.codeg.app/guide/research) + + + + + Office-Dokumente & Forschung + +
+ +### Browser- & Computernutzung + +In der Desktop-App öffnen sich Links in einem integrierten Browser neben deinen Dateien, in Desktop-, Tablet- oder Smartphone-Größe: Übergib dem Agenten eine Seite, ein Element, einen Screenshot oder einen Konsolenfehler, oder lass ihn eine Seite steuern, die du freigibst. Als Vorschau verfügbar: Agenten können auch die Fenster sehen und bedienen, die du freigibst — und mit einem Klick hältst du sie an. + +[Doku →](https://docs.codeg.app/guide/browser) · [Computernutzung →](https://docs.codeg.app/guide/computer-use) + + + + + Browser- & Computernutzung + +
+ +### Der komplette Engineering-Loop + +Ein Editor, Live- und Zwei-Spalten-Diffs, ein vollwertiger Git-Client mit dreispaltigem Merge-Editor, Worktrees mit einem Klick, ein eingebettetes Terminal und Split-Ansichten — alles neben dem Agenten, direkt an den echten Dateien in deinem Repository. + +[Doku →](https://docs.codeg.app/guide/workspace) · [Git & Worktrees →](https://docs.codeg.app/guide/git) + + + + + Der komplette Engineering-Loop + +
-## 📱 iPhone, iPad & Android +**Außerdem mit an Bord:** + +- **[Repository-Panel](https://docs.codeg.app/guide/repository)** — Issues, Pull Requests, Checks und Merges für GitHub, GitLab, Gitea und Forgejo; aus jedem Issue oder PR kann ein To-do werden +- **[Automatisierungen](https://docs.codeg.app/guide/automations)** — einen konfigurierten Composer speichern und headless ausführen, nach Cron-Zeitplan oder bei Bedarf +- **[Token-Nutzung](https://docs.codeg.app/guide/token-usage)** — Verläufe, Cache-Trefferquote, eine Aktivitäts-Heatmap, Nutzung nach Ordner, Agent, Modell und Sitzung und was das zu API-Listenpreisen kosten würde +- **[Verzweigen & Nachsteuern](https://docs.codeg.app/guide/workspace#follow-along-%E2%80%94-the-conversation)** — bei Agenten, die das unterstützen, eine Unterhaltung ab einer abgeschlossenen Antwort verzweigen oder eine Nachricht in einen noch laufenden Turn schicken +- **[Skills](https://docs.codeg.app/guide/skills) & [MCP](https://docs.codeg.app/guide/mcp)** — Skill-Pakete pro Agent, ein lokaler MCP-Scan sowie Suche und Installation aus der Registry +- **[Projekt-Boot](https://docs.codeg.app/guide/project-boot)** — ein neues Projekt visuell aufsetzen, mit Live-Vorschau +- **[Benachrichtigungen](https://docs.codeg.app/reference/settings/general#desktop-notifications)** — Desktop-Benachrichtigungen, Töne und eine blinkende Taskleisten-Schaltfläche oder ein hüpfendes Dock-Symbol, wenn ein Turn endet oder ein Agent dich braucht +- **[Mach es zu deinem](https://docs.codeg.app/reference/settings/appearance)** — zwölf Themes, die du Token für Token umfärben kannst, Hintergrundbilder, Eckenradius, Chat-Breite, eigenes CSS und ein Desktop-Pet — in jeder der zehn Oberflächensprachen +- **[Sicherung & Synchronisierung](https://docs.codeg.app/reference/settings/system#backup-restore)** — verschlüsselte Sicherungen sowie Konfigurationssynchronisierung zwischen Rechnern über eine Datei oder deinen eigenen WebDAV-Server +- **[URL-Schema](../../docs/url-scheme.md)** — `codeg://session/` öffnet eine Unterhaltung aus einer anderen App heraus (Desktop) +- **[Kommandozeile](../../docs/cli.md)** — `codeg-cli` führt einen Prompt über ein laufendes Codeg aus, Desktop oder Server, aus einem Skript oder CI-Job heraus, und gibt die Antwort oder JSON-Ereignisse aus +- **Und noch mehr** — fast jede Version bringt etwas Neues; die vollständige Liste steht in den [Versionshinweisen](https://github.com/spacering-net/codeg/releases) -Geh vom Schreibtisch weg, nicht von der Arbeit. Die nativen iOS- und Android-Clients verbinden sich mit dem Codeg, das du ohnehin betreibst — dem **Web Service** deiner Desktop-App oder deinem eigenen `codeg-server`. Von dort startest du Sitzungen, verfolgst Antworten und Tool-Aufrufe im Stream, beantwortest Berechtigungsanfragen und siehst dir Projekte und Branches an. Aufs Telefon wandert nichts: Dateien, Agenten-CLIs und Unterhaltungen bleiben auf der Maschine, die Codeg ausführt, und das Zugriffstoken liegt im iOS-Keychain oder im Android Keystore. Beide Clients sind Open Source ([iOS](https://github.com/xintaofei/codeg-ios), [Android](https://github.com/xintaofei/codeg-android)); das Koppeln dauert drei Schritte und steht in [Mobile Apps](https://docs.codeg.app/getting-started/installation#mobile-apps). +## 🤖 Unterstützte Agenten -| iPhone & iPad | Android | -| :---: | :---: | -| Eine Sitzung wird im Codeg-iOS-Client gestartet | Eine Agenten-Antwort, die live in den Codeg-Android-Client läuft | +Codeg spricht mit jedem Agenten über das [Agent Client Protocol](https://agentclientprotocol.com), sodass jeder dieselbe strukturierte Oberfläche bekommt. Neunzehn sind eingebaut, und die meisten davon installiert, fixiert und aktualisiert Codeg für dich: -## ✨ Highlights +

+ Claude Code   + Codex   + Gemini CLI   + OpenClaw   + OpenCode   + Cline   + Hermes Agent   + CodeBuddy   + Kimi Code   + Pi   + Grok   + Cursor   + DeepSeek Harness   + Qoder   + Google Antigravity   + Kiro CLI   + ZCode   + TRAE CLI   + Command Code   + + jeder ACP-Agent +

-- **[Sitzungs-Aggregation](https://docs.codeg.app/guide/aggregation)** — importiert Sitzungen aller unterstützten Agenten in einen einheitlichen, durchsuchbaren Workspace — und du machst dort weiter, wo du aufgehört hast -- **[Multi-Agent-Zusammenarbeit](https://docs.codeg.app/guide/multi-agent)** — per `@`-Erwähnung an jeden Agenten delegieren: Sub-Agenten unterschiedlicher Typen laufen als eigene Sitzungen, parallel, innerhalb einer Aufgabe -- **[To-dos](https://docs.codeg.app/guide/tasks)** — schreib auf, was zu tun ist, und Agenten arbeiten die Warteschlange ab, jede Aufgabe in ihrem eigenen Worktree — auf deinem Branch landet sie erst, nachdem du sie geprüft hast -- **[Eigene Agenten](https://docs.codeg.app/guide/custom-agents)** — jeden weiteren ACP-kompatiblen Agenten aus der öffentlichen Registry oder per Distribution-JSON registrieren; Codeg installiert ihn, zeichnet seine Historie auf und behandelt ihn wie einen eingebauten -- **[Der Workspace](https://docs.codeg.app/guide/workspace)** — der komplette Engineering-Loop direkt neben dem Agenten: Dateibaum, Editor und Diff, Git-Änderungen, Commit, ein eingebettetes Terminal und [mehrere Ordner, zu einem Workspace verbunden](https://docs.codeg.app/guide/workspace#work-across-several-folders) -- **[Split-Ansicht](https://docs.codeg.app/guide/workspace#split-the-conversation-view-into-groups)** — den Unterhaltungsbereich in beliebig viele Tab-Gruppen teilen, Tabs und Teiler zwischen ihnen ziehen und das Layout — samt Entwürfen — nach dem Neustart zurückbekommen -- **[Git & Worktrees](https://docs.codeg.app/guide/git)** — Änderungen prüfen und committen, Git-Remote-Konten verwalten und mit integrierten `git worktree`-Abläufen parallel arbeiten -- **[Token-Nutzung](https://docs.codeg.app/guide/token-usage)** — hinter dem Zähler in der Statusleiste steckt ein vollständiger Bericht: Verläufe und Cache-Trefferquote, eine Aktivitäts-Heatmap und Aufschlüsselungen nach Ordner, Agent, Modell und Sitzung -- **[Chat-Kanäle](https://docs.codeg.app/guide/chat-channels)** — steuere deine Agenten aus Telegram, Lark (Feishu) und WeChat: Aufgaben anlegen, Berechtigungen freigeben, Live-Updates erhalten -- **[Automatisierungen](https://docs.codeg.app/guide/automations)** — einen fertig konfigurierten Composer als wiederverwendbare Automatisierung sichern und headless per Cron-Zeitplan oder auf Zuruf ausführen — sie startet eine Sitzung oder legt ein To-do an, das du später prüfst -- **[Office-Dokumente](https://docs.codeg.app/guide/office)** — `.docx` / `.xlsx` / `.pptx` mit dem mitgelieferten `officecli` erstellen, analysieren, korrigieren und bearbeiten — mit Live-Vorschau im Tab -- **[Wissenschaftliche Recherche](https://docs.codeg.app/guide/research)** — mitgelieferte Research-Skills (Hypothesenbildung, Versuchsplanung, Statistik, Visualisierung, kritische Bewertung, Literatursuche), die jeder Agent aufrufen kann -- **[Project Boot](https://docs.codeg.app/guide/project-boot)** — neue Projekte visuell aufsetzen, mit Live-Vorschau, und direkt im Workspace öffnen -- **[MCP](https://docs.codeg.app/guide/mcp) & [Skills](https://docs.codeg.app/guide/skills)** — lokaler Server-Scan plus Suche/Installation aus der Registry, Skills global oder pro Projekt verwaltet -- **[Mach es zu deinem](https://docs.codeg.app/reference/settings/appearance)** — jedes der zwölf Themes Token für Token umfärben, den Eckenradius app-weit setzen, Themes als shadcn-JSON importieren und exportieren oder eigenes CSS schreiben -- **[Desktop, Server & Docker](https://docs.codeg.app/getting-started/deployment)** — eine native Desktop-App, ein eigenständiger `codeg-server` für den Browser oder `docker compose up` -- **[iPhone, iPad & Android](https://docs.codeg.app/getting-started/installation#mobile-apps)** — native Mobile-Clients, die sich mit deinem Desktop oder Server verbinden: Sitzungen starten, Antworten streamen, Berechtigungen freigeben und Projekte von überall durchsehen +Nicht dabei? Wähle einen beliebigen Agenten aus der öffentlichen ACP-Registry oder füge sein Distribution-JSON ein — Codeg installiert ihn, prüft, ob er startet, und behandelt ihn wie einen eingebauten. Laufzeit-Anforderungen und wo jeder Agent seine Sitzungen ablegt: [Unterstützte Agenten](https://docs.codeg.app/guide/supported-agents). -## 📦 Installation & Betrieb +## 📦 Installation -**Desktop** — Lade den Installer für macOS, Windows oder Linux aus den [Releases](https://github.com/xintaofei/codeg/releases) und folge der [Installation](https://docs.codeg.app/getting-started/installation). +**Desktop** — Installer für macOS, Windows und Linux liegen unter [Releases](https://github.com/spacering-net/codeg/releases/latest); die Einrichtungsschritte stehen unter [Installation](https://docs.codeg.app/getting-started/installation). **Server** — Codeg headless betreiben und aus jedem Browser erreichen. Unter Linux oder macOS: ```bash -curl -fsSL https://raw.githubusercontent.com/xintaofei/codeg/main/install.sh | bash +curl -fsSL https://raw.githubusercontent.com/spacering-net/codeg/main/install.sh | bash CODEG_STATIC_DIR=/usr/local/share/codeg/web codeg-server ``` Unter Windows, in PowerShell: ```powershell -irm https://raw.githubusercontent.com/xintaofei/codeg/main/install.ps1 | iex -$env:CODEG_STATIC_DIR="$env:LOCALAPPDATA\codeg\web"; codeg-server +irm https://raw.githubusercontent.com/spacering-net/codeg/main/install.ps1 | iex +$env:CODEG_STATIC_DIR="$env:LOCALAPPDATA\codeg-server\web"; codeg-server ``` **Docker** — derselbe Server, in einem Container: ```bash -docker run -d -p 3080:3080 -v codeg-data:/data ghcr.io/xintaofei/codeg:latest +docker run -d -p 3080:3080 -v codeg-data:/data ghcr.io/spacering-net/codeg:latest ``` -**Mobil** — installiere die [iOS-App](https://apps.apple.com/app/codeg-client/id6785199071) oder das [Android-APK](https://github.com/xintaofei/codeg-android/releases/latest) und richte sie auf den **Web Service** deiner Desktop-App oder deinen eigenen `codeg-server`: URL, Token, fertig. Die Kopplungsschritte stehen in [Mobile Apps](https://docs.codeg.app/getting-started/installation#mobile-apps). +In beiden Fällen öffnest du `http://:3080` im Browser und gibst das Zugriffstoken ein, das der Server beim Start ausgibt (beim Container zeigt `docker logs` das Token an), oder du legst mit `CODEG_TOKEN` dein eigenes fest. + +**Mobil** — installiere die [iOS-App](https://apps.apple.com/app/codeg-client/id6785199071) oder das [Android-APK](https://github.com/xintaofei/codeg-android/releases/latest) und richte sie auf den **Webdienst** deiner Desktop-App oder auf deinen eigenen `codeg-server`: URL, Token, fertig. Die Kopplungsschritte stehen in [Mobile Apps](https://docs.codeg.app/getting-started/installation#mobile-apps). + +Compose, vorgebaute Binaries, Builds aus dem Quellcode und In-place-Updates stehen unter [Deployment](https://docs.codeg.app/getting-started/deployment); Umgebungsvariablen unter [Konfiguration](https://docs.codeg.app/getting-started/configuration). + +## 👥 Community & Support -Compose, vorgebaute Binaries, Builds aus dem Quellcode und In-place-Updates stehen unter [Deployment](https://docs.codeg.app/getting-started/deployment); Umgebungsvariablen unter [Konfiguration](https://docs.codeg.app/getting-started/configuration). Codeg selbst bauen: [Entwicklung](https://docs.codeg.app/reference/development) und [Architektur](https://docs.codeg.app/reference/architecture). +- **WeChat** — scanne den QR-Code, um unserer Gruppe für Diskussionen, Feedback und Updates beizutreten: -## 🔒 Datenschutz und Sicherheit + + + WeChat + -- Standardmäßig local-first bei Parsing, Speicherung und Projektoperationen — Netzwerkzugriffe passieren nur bei von dir ausgelösten Aktionen -- Web- und Server-Modus sind durch Token-basierte Authentifizierung geschützt -- System-Proxy-Unterstützung für Unternehmensumgebungen +- **Issues** — einen Bug gefunden oder eine Funktion vermisst? [Eröffne ein Issue](https://github.com/spacering-net/codeg/issues). +- **Datenschutz** — local-first: Parsing, Speicherung und Projektoperationen bleiben auf deinem Rechner, und Web- und Server-Modus sind durch Token-basierte Authentifizierung geschützt. Details unter [Datenschutz und Sicherheit](https://docs.codeg.app/reference/privacy). +- **LinuxDO** — danke an die [LinuxDO](https://linux.do)-Community für ihre Unterstützung. +- **Unterstütze uns** — [gib dem Repo einen Stern](https://github.com/spacering-net/codeg), um auf dem Laufenden zu bleiben. -Details unter [Datenschutz und Sicherheit](https://docs.codeg.app/reference/privacy). +## 🤝 Mitwirken -## 👥 Community +Issues und Pull Requests sind willkommen. Wenn du Codeg selbst bauen willst, beginne mit [Entwicklung](https://docs.codeg.app/reference/development) und [Architektur](https://docs.codeg.app/reference/architecture). -- Scannen Sie den unten stehenden QR-Code, um unserer WeChat-Gruppe für Diskussionen, Feedback und Updates beizutreten + + Codeg-Mitwirkende + -WeChat -WeChat +## ⭐ Star-Verlauf -- Danke an die [LinuxDO](https://linux.do)-Community für ihre Unterstützung + + + + + Star History Chart + + ## 🙏 Danksagungen @@ -221,6 +363,8 @@ Details unter [Datenschutz und Sicherheit](https://docs.codeg.app/reference/priv - [Superpowers](https://github.com/obra/superpowers) — unterstützt das Experten-Skills-Modul von Codeg - [OfficeCLI](https://github.com/iOfficeAI/OfficeCLI) — unterstützt den Office-Dokument-Workflow von Codeg - [scientific-agent-skills](https://github.com/K-Dense-AI/scientific-agent-skills) — unterstützt die wissenschaftlichen Forschungs-Skills von Codeg (MIT-lizenzierte Teilmenge) +- [json-render](https://github.com/vercel-labs/json-render) — unterstützt die Karten, Tabellen und Diagramme des UI-Renderings von Codeg +- [cua-driver](https://github.com/trycua/cua) — unterstützt die Computernutzung von Codeg ## 📜 Lizenz diff --git a/docs/readme/README.es.md b/docs/readme/README.es.md index 3050953d28..ee63eb1c73 100644 --- a/docs/readme/README.es.md +++ b/docs/readme/README.es.md @@ -1,32 +1,44 @@ -# Codeg - -[![Release](https://img.shields.io/github/v/release/xintaofei/codeg)](https://github.com/xintaofei/codeg/releases) -[![Docs](https://img.shields.io/badge/docs-docs.codeg.app-3451b2)](https://docs.codeg.app) -[![License](https://img.shields.io/github/license/xintaofei/codeg)](../../LICENSE) - -

- English | - 简体中文 | - 繁體中文 | - 日本語 | - 한국어 | - Español | - Deutsch | - Français | - Português | - العربية +

+ Codeg logo Codeg +

+ +

+ GitHub stars + Latest release + Total downloads + License + Documentation + Platforms: macOS, Windows, Linux, Docker, iOS, Android

-Codeg (Code Generation) es un espacio de trabajo de programación multiagente: ejecuta todos tus agentes de IA en un mismo lugar y deja que trabajen juntos. +

+ English · 简体中文 · 繁體中文 · 日本語 · 한국어 · Español · Deutsch · Français · Português · العربية +

-Reúne las sesiones de todas las CLI de agentes compatibles en un único espacio de trabajo con búsqueda y permite que un agente principal delegue en subagentes de otros tipos dentro de una misma tarea. El trabajo que prefieres no vigilar va al tablero de tareas pendientes: cada tarea en su propia rama, ejecutándose sin supervisión, esperando tu revisión antes de aterrizar. Codeg funciona como aplicación de escritorio, servidor independiente o contenedor Docker, con clientes nativos de iOS y Android para cuando estás lejos del escritorio; trae quince agentes integrados y puedes registrar tú mismo cualquier otro agente compatible con ACP. +

+ El espacio de trabajo de programación multiagente.
+ Ejecuta todos los agentes de programación con IA en un mismo lugar y deja que trabajen juntos. +

-![Espacio de trabajo](../images/workspace-light.png#gh-light-mode-only) -![Espacio de trabajo](../images/workspace-dark.png#gh-dark-mode-only) +

Descargar Codeg · Documentación

-## 📖 Documentación +

+ + + El espacio de trabajo de Codeg: una conversación con un agente junto a sus diffs en vivo y los archivos del proyecto + +

-**La documentación completa está en [docs.codeg.app](https://docs.codeg.app)** — [Primeros pasos](https://docs.codeg.app/getting-started/) · [Guía](https://docs.codeg.app/guide/) · [Referencia](https://docs.codeg.app/reference/) + + + + + + + + + +
🧩 Una interfaz para todos los agentes
Diecinueve agentes integrados, y cualquier agente compatible con ACP puede sumarse: todos se presentan como la misma conversación estructurada, no como una terminal.
🔎 Sesiones que viajan
Importa, busca y retoma el historial que cada agente guarda en disco, y luego pásaselo a otro agente.
🤝 Agentes que trabajan juntos
Delega en otros agentes con una @ o pon en cola tareas pendientes que se ejecutan sin supervisión en sus propios worktrees.
🌍 Allí donde trabajes
App de escritorio, servidor autoalojado o Docker, iPhone, iPad y Android, además de Telegram, Lark o WeChat.
## 💖 Patrocinadores @@ -45,13 +57,6 @@ Reúne las sesiones de todas las CLI de agentes compatibles en un único espacio ¡Gracias a 合租巴士 por patrocinar este proyecto! 合租巴士 es una plataforma de retransmisión de IA fiable y eficiente que ofrece una retransmisión de alta estabilidad para los principales modelos como Codex y Claude Code. La proporción de recarga es transparente (1:1), con subvenciones de tarifa de Codex desde tan solo 0,08. Únete al grupo desde el sitio web oficial para obtener 5 USD de crédito de prueba. - - - LQ router
- LQ router - - ¡Gracias al servicio de retransmisión LQ router por patrocinar este proyecto! LQ router es un servicio profesional de retransmisión de IA de nivel empresarial que ofrece a empresas y desarrolladores individuales un acceso estable, eficiente y de bajo coste a las API de modelos de IA. La plataforma admite modelos líderes como GPT, Claude, Grok y Gemini, con multiplicadores de tarifa de GPT Pro desde tan solo 0,1×. Únete al grupo desde el sitio web oficial y recibe 1 USD de crédito de prueba. - APIMart
@@ -72,10 +77,10 @@ Reúne las sesiones de todas las CLI de agentes compatibles en un único espacio - Fluxion AI
- Fluxion AI + Sidrune AI
+ Sidrune AI - ¡Gracias a Fluxion AI por patrocinar este proyecto! Fluxion AI ofrece un acceso por API rápido, fiable y rentable a GPT, Claude, Gemini y otros modelos de IA líderes mediante una única API unificada. Los nuevos usuarios pueden recibir 3 USD en créditos de API a través de nuestro enlace exclusivo. + ¡Gracias a Sidrune AI por patrocinar este proyecto! Sidrune AI ofrece acceso a GPT, Claude y otros modelos de IA populares mediante una única API. Los nuevos usuarios que se registren a través de nuestro enlace exclusivo con el código promocional SDRCODEG reciben 3 USD en créditos de API. @@ -88,132 +93,269 @@ Reúne las sesiones de todas las CLI de agentes compatibles en un único espacio > ¿Quieres convertirte en patrocinador de Codeg? [Contáctanos por correo electrónico.](mailto:itpkcn@gmail.com) -## 🤖 Agentes compatibles - -Claude Code · Codex · Gemini · OpenClaw · OpenCode · Cline · Hermes · CodeBuddy · Kimi Code · Pi · Grok · Cursor · DeepSeek Harness · Qoder · Google Antigravity - -Codeg instala, fija la versión y actualiza la mayoría de ellos por ti. Consulta [Agentes compatibles](https://docs.codeg.app/guide/supported-agents) para ver la lista completa, los requisitos de ejecución de cada uno y dónde guarda sus sesiones en disco. - -¿No está en la lista? Añádelo tú. Elige cualquier agente del registro público de ACP o pega su JSON de distribución: Codeg lo instala, comprueba que puede arrancar y lo trata como uno integrado — aparece en el selector, acepta delegación con `@` y skills, y sus conversaciones quedan registradas y buscables incluso cuando el agente no guarda ningún historial propio. → [Agentes personalizados](https://docs.codeg.app/guide/custom-agents) - -## 🤝 Colaboración multiagente - -La colaboración multiagente, reducida a una sola tecla: escribe `@`, elige un agente y envía. Codeg se encarga de la orquestación: lanza cada agente mencionado como su propia sesión, le entrega la tarea y devuelve su trabajo al hilo en el que ya estás. Menciona dos y avanzarán en paralelo: Claude Code redactando mientras Codex revisa. Sin cambiar de contexto, sin copiar y pegar entre terminales. +## ✨ Características -Y cuando un agente lanza subagentes propios — Claude Code, Codex, Grok y OpenCode lo hacen — cada hijo recibe su propia tarjeta, que se va llenando mientras trabaja en lugar de aparecer de golpe al terminar. Ábrela y podrás leer la sesión del hijo. - -![Delegando una tarea en subagentes desde una sola conversación de Codeg](../images/collaboration-light.gif#gh-light-mode-only) -![Delegando una tarea en subagentes desde una sola conversación de Codeg](../images/collaboration-dark.gif#gh-dark-mode-only) - -## ✅ Tareas pendientes - -No todo trabajo necesita que lo mires. Anótalo — un título, una descripción, el agente con el que ejecutarlo — y Codeg le entrega **su propia copia del código**: un worktree de git junto a tu proyecto, en su propia rama. Varios se ejecutan a la vez sin tocarse entre sí ni tocar el árbol en el que estás trabajando. Programa uno para esta noche, o deja que una carpeta vaya vaciando su cola sola, hasta el límite de concurrencia que fijes. - -Una tarea terminada no se fusiona sola. Pasa a la columna de revisión y espera: lee el diff, devuélvela para otra pasada o acéptala — y es el agente quien la aterriza, trayendo antes tu rama base a su worktree y resolviendo allí los conflictos. Después Codeg no se fía de su palabra, sino que comprueba git: una fusión que no puede confirmar vuelve a revisión en lugar de darse por buena. - -![El tablero de tareas pendientes, con tareas pasando de Pendientes a En curso y a Listo](../images/task-light.png#gh-light-mode-only) -![El tablero de tareas pendientes, con tareas pasando de Pendientes a En curso y a Listo](../images/task-dark.png#gh-dark-mode-only) - -## 🪟 Vista dividida - -Una sola tira de pestañas no siempre alcanza. Haz clic derecho en una pestaña de conversación y divide la vista **a la derecha** o **hacia abajo**, tantas veces como quieras: dos paneles en paralelo, una pila de tres, una cuadrícula. Cada grupo es un espacio de trabajo completo — con sus pestañas, su encabezado y su propio botón de nueva conversación — así que Claude Code puede refactorizar en un panel mientras Codex revisa un diff en el de al lado. - -Arrastra una pestaña de un grupo a otro y su sesión sigue transmitiendo durante la mudanza; arrastra el divisor entre dos grupos para cambiar cómo se reparten el espacio. Tu disposición se recuerda por espacio de trabajo, borradores incluidos: vuelve a abrir Codeg y la división regresa, con el texto que nunca enviaste todavía en el cuadro. - -![Dividiendo el área de conversación en una cuadrícula de grupos de pestañas](../images/split-light.gif#gh-light-mode-only) -![Dividiendo el área de conversación en una cuadrícula de grupos de pestañas](../images/split-dark.gif#gh-dark-mode-only) - -## 📄 Documentos de Office - -Pide una presentación, un informe o un libro de cálculo y el agente construye un `.pptx` / `.docx` / `.xlsx` de verdad, mientras el panel de la derecha lo renderiza en vivo. Cada cambio llega solo a la vista previa: las diapositivas se llenan, las tablas toman forma, los números caen en sus celdas. ¿No te convence la diapositiva 4? Dilo en el siguiente mensaje: el agente edita ese mismo archivo y la vista previa se pone al día. Sin exportar, sin abrir Office, sin salir de Codeg. - -![Un agente editando un documento de Office junto a su vista previa en vivo](../images/office-light.png#gh-light-mode-only) -![Un agente editando un documento de Office junto a su vista previa en vivo](../images/office-dark.png#gh-dark-mode-only) - -## 💻 Espacio de trabajo - -Un espacio de trabajo, todos los agentes. Sea cual sea el que esté trabajando —Claude Code, Codex, Cursor—, lo hace en el mismo editor, con los mismos diffs en vivo y el mismo cliente de git; y lo que produce son archivos reales de tu repositorio, cambiando delante de ti. Enlaza otros directorios — una biblioteca compartida, un servicio vecino, el repositorio de documentación — y el árbol de archivos, la búsqueda y el propio agente los tratan como un solo espacio de trabajo. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +### Una interfaz para todos los agentes + +Diecinueve agentes vienen integrados, y cualquier otro agente compatible con ACP puede sumarse desde el registro público o con su JSON de distribución. Codeg se comunica con cada uno de ellos mediante el Agent Client Protocol, así que todos reciben la misma conversación enriquecida —tarjetas de herramientas, diffs en vivo, planes y solicitudes de permiso— en lugar de una terminal en la que dejarse la vista. Activa Renderizado de UI para un agente y podrá responder con tarjetas, tablas y gráficos interactivos. -**Sesiones.** Trae el historial que ya tienes: las sesiones pasadas de todos los agentes instalados, importadas con un clic y listas para retomarse donde las dejaste. Una vez dentro dejan de ser compartimentos estancos: menciona una sesión antigua con `@` y el agente con el que hablas puede leerla, aunque la haya escrito otro agente, así que la ejecución de Codex de hoy sigue donde terminó la sesión de Claude Code de la semana pasada. Por larga que se haga una conversación, se abre por sus rondas recientes y va cargando el resto a medida que subes. +[Documentación →](https://docs.codeg.app/guide/supported-agents) · [Agentes personalizados →](https://docs.codeg.app/guide/custom-agents) · [Renderizado de UI →](https://docs.codeg.app/guide/skills#cards-tables-and-charts-in-replies) -**Archivos.** Las ediciones del agente aparecen como diffs junto a la conversación según van llegando. Abre cualquier archivo en un editor de verdad con resaltado de sintaxis, envía un archivo —o solo una selección— directamente al agente con `⌘L`, y previsualiza Markdown, HTML, imágenes y documentos de Office en el mismo panel. + + + + Una interfaz para todos los agentes + +
+ +### Cada sesión, al alcance de una búsqueda + +Codeg lee el historial que cada CLI de agente guarda en disco: impórtalo con un clic, haz búsquedas en todo él y retoma cualquier sesión donde se quedó. Menciona una sesión antigua con `@` y el agente con el que hablas puede leerla, aunque la haya escrito otro agente. Ponles a las conversaciones etiquetas de colores, globales o de una sola carpeta, y filtra la barra lateral por ellas. + +[Documentación →](https://docs.codeg.app/guide/aggregation) · [Etiquetas →](https://docs.codeg.app/guide/workspace#tag-conversations) -**Git.** Un cliente completo, no un indicador de estado: haz commit directamente desde la pestaña Cambios — escribe un mensaje, pulsa Enter — con pull, fetch, push y stash al lado, y un historial que muestra qué commits están enviados. Crea ramas, fusiona, rebasa, resetea o compara con otra rama, y actualiza o envía cualquier rama sin cambiarte a ella. Los conflictos abren un editor de fusión de tres paneles donde aceptas hunk a hunk o escribes tú mismo la solución. Y los worktrees convierten el trabajo en paralelo en una sola acción: una rama nueva, su propio directorio y una conversación recién creada dentro de él, para que una flota de agentes construya funciones distintas a la vez sin tocarse los archivos. + + + + Cada sesión, al alcance de una búsqueda + +
+ +### Colaboración multiagente + +Escribe `@`, elige un agente y envía. Cada agente mencionado se ejecuta como su propia sesión, en paralelo, y su trabajo llega en directo a tu hilo —Claude Code redacta mientras Codex revisa—. Los subagentes aparecen como tarjetas que se van llenando mientras trabajan. + +[Documentación →](https://docs.codeg.app/guide/multi-agent) -**Cuando algo falla.** Un turno que muere no se limita a decir que algo salió mal: en Claude Code y Codex nombra el tipo — un problema de conexión, un problema de acceso, un límite alcanzado, una solicitud rechazada, un problema del servicio — y deja bajo el compositor una franja con lo que realmente ayudaría: Reintentar, Iniciar sesión o una sesión nueva. Los reintentos que hace el agente por su cuenta se muestran en ámbar y acaban en una sola línea de «Recuperado». Y el indicador de conexión bajo el compositor es un botón: púlsalo para ver el estado real de la sesión, con un Reconectar que reanuda en vez de empezar de cero. + + + + Colaboración multiagente + +
+ +### Tareas pendientes que se ejecutan sin supervisión + +Anota un trabajo y olvídate. Cada tarea pendiente recibe su propio worktree de git y su propia rama, empieza ahora o a una hora programada, y luego espera tu revisión; acepta el diff y el agente la aterriza, y Codeg comprueba git antes de darla por terminada. El panel del repositorio también puede añadirlas por ti: recoge incidencias y pull requests por etiqueta y autor, de forma programada o cuando llega un webhook. + +[Documentación →](https://docs.codeg.app/guide/tasks) · [Procesamiento automático →](https://docs.codeg.app/guide/repository#let-it-pick-items-up-by-itself) + + + + + Tareas pendientes que se ejecutan sin supervisión + +
+ +### Lienzo infinito + +Distribuye tu trabajo en el espacio: conversaciones, archivos, terminales y notas se convierten en tarjetas sobre un tablero, agrupadas por carpeta y agente, para que varios agentes se ejecuten en paralelo, todos a la vista. + +[Documentación →](https://docs.codeg.app/guide/canvas) + + + + + Lienzo infinito + +
+ +### Escritorio, servidor, móvil y chat + +Ejecuta Codeg como app de escritorio, como servidor autoalojado al que accedes desde cualquier navegador o como un único contenedor Docker, y abre un servidor remoto desde la app de escritorio en su propia ventana de espacio de trabajo. Los clientes nativos para iPhone, iPad y Android —además de los canales de Telegram, Lark y WeChat— mantienen a tus agentes al alcance de la mano, mientras tus archivos y sesiones se quedan en máquinas que tú controlas. + +[Documentación →](https://docs.codeg.app/getting-started/deployment) · [Espacios de trabajo remotos →](https://docs.codeg.app/guide/workspace#desktop-and-browser) · [Apps móviles →](https://docs.codeg.app/getting-started/installation#mobile-apps) · [Canales de chat →](https://docs.codeg.app/guide/chat-channels) + + + + + Escritorio, servidor, móvil y chat + +
+ +### Documentos de Office e investigación + +Pide una presentación, un informe o un libro de cálculo y mira cómo el `.pptx`, `.docx` o `.xlsx` de verdad se renderiza en vivo junto a la conversación; los PDF se abren en un visor propio. Las habilidades de investigación incluidas —hipótesis, diseño experimental, estadística, búsqueda bibliográfica— funcionan con cualquier agente. + +[Documentación →](https://docs.codeg.app/guide/office) · [Investigación →](https://docs.codeg.app/guide/research) + + + + + Documentos de Office e investigación + +
+ +### Navegador y Uso del ordenador + +En la app de escritorio, los enlaces se abren en un navegador integrado junto a tus archivos, a tamaño de escritorio, tableta o teléfono: pásale al agente una página, un elemento, una captura de pantalla o un error de la consola, o deja que maneje una página que compartas. En versión preliminar, los agentes también pueden ver las ventanas que compartas y actuar en ellas, con Detener a un solo clic. + +[Documentación →](https://docs.codeg.app/guide/browser) · [Uso del ordenador →](https://docs.codeg.app/guide/computer-use) + + + + + Navegador y Uso del ordenador + +
+ +### El ciclo de ingeniería completo + +Un editor, diffs en vivo y lado a lado, un cliente de git completo con un editor de fusión de tres paneles, worktrees con un clic, una terminal integrada y vistas divididas: todo junto al agente, sobre los archivos reales de tu repositorio. + +[Documentación →](https://docs.codeg.app/guide/workspace) · [Git y worktrees →](https://docs.codeg.app/guide/git) + + + + + El ciclo de ingeniería completo + +
-## 📱 iPhone, iPad y Android +**También incluye:** + +- **[Panel del repositorio](https://docs.codeg.app/guide/repository)** — incidencias, pull requests, comprobaciones y fusiones de GitHub, GitLab, Gitea y Forgejo; cualquier incidencia o PR puede convertirse en una tarea pendiente +- **[Automatizaciones](https://docs.codeg.app/guide/automations)** — guarda un compositor ya configurado y ejecútalo sin interfaz, con una programación cron o bajo demanda +- **[Uso de tokens](https://docs.codeg.app/guide/token-usage)** — tendencias, tasa de aciertos de caché, un mapa de calor de actividad, el uso por carpeta, agente, modelo y sesión, y lo que costaría a precios de lista de la API +- **[Bifurcar y reconducir](https://docs.codeg.app/guide/workspace#follow-along-%E2%80%94-the-conversation)** — en los agentes que lo admiten, bifurca una conversación desde una respuesta terminada o inserta un mensaje en un turno que sigue en curso +- **[Habilidades](https://docs.codeg.app/guide/skills) y [MCP](https://docs.codeg.app/guide/mcp)** — paquetes de habilidades por agente, un escaneo de servidores MCP locales y búsqueda e instalación desde el registro +- **[Inicializador de proyecto](https://docs.codeg.app/guide/project-boot)** — genera la estructura inicial de un proyecto nuevo de forma visual, con vista previa en vivo +- **[Notificaciones](https://docs.codeg.app/reference/settings/general#desktop-notifications)** — notificaciones de escritorio, sonidos y un botón de la barra de tareas que parpadea o un icono del Dock que rebota cuando termina un turno o un agente te necesita +- **[Hazlo tuyo](https://docs.codeg.app/reference/settings/appearance)** — doce temas que puedes recolorear token a token, fondos de pantalla, radio de las esquinas, ancho del chat, CSS personalizado y una mascota de escritorio, con la interfaz en cualquiera de sus diez idiomas +- **[Copia de seguridad y sincronización](https://docs.codeg.app/reference/settings/system#backup-restore)** — copias de seguridad cifradas y sincronización de la configuración entre máquinas mediante un archivo o tu propio servidor WebDAV +- **[Esquema de URL](../../docs/url-scheme.md)** — `codeg://session/` abre una conversación desde otra app (escritorio) +- **[Línea de comandos](../../docs/cli.md)** — `codeg-cli` ejecuta un prompt en un Codeg en marcha, de escritorio o servidor, desde un script o un trabajo de CI, e imprime la respuesta o eventos JSON +- **Y más** — casi todas las versiones añaden algo; las [notas de versión](https://github.com/spacering-net/codeg/releases) recogen la lista completa -Aléjate del escritorio, no de tu trabajo. Los clientes nativos de iOS y Android se conectan al Codeg que ya tienes en marcha —el **Servicio web** de tu app de escritorio o tu propio `codeg-server`— y desde ahí inicias sesiones, ves llegar las respuestas y las llamadas a herramientas en tiempo real, respondes a las solicitudes de permiso y exploras proyectos y ramas. Nada se traslada al teléfono: tus archivos, las CLI de los agentes y las conversaciones siguen en la máquina que ejecuta Codeg, y el token de acceso queda en el Llavero de iOS o en Android Keystore. Ambos clientes son de código abierto ([iOS](https://github.com/xintaofei/codeg-ios), [Android](https://github.com/xintaofei/codeg-android)); vincularlos son tres pasos, explicados en [Apps móviles](https://docs.codeg.app/getting-started/installation#mobile-apps). +## 🤖 Agentes compatibles -| iPhone y iPad | Android | -| :---: | :---: | -| Iniciando una sesión desde el cliente de Codeg para iOS | La respuesta de un agente llegando en directo al cliente de Codeg para Android | +Codeg se comunica con cada agente mediante el [Agent Client Protocol](https://agentclientprotocol.com), así que todos reciben la misma interfaz estructurada. Diecinueve vienen integrados, y Codeg instala, fija la versión y actualiza la mayoría de ellos por ti: -## ✨ Puntos destacados +

+ Claude Code   + Codex   + Gemini CLI   + OpenClaw   + OpenCode   + Cline   + Hermes Agent   + CodeBuddy   + Kimi Code   + Pi   + Grok   + Cursor   + DeepSeek Harness   + Qoder   + Google Antigravity   + Kiro CLI   + ZCode   + TRAE CLI   + Command Code   + + cualquier agente ACP +

-- **[Agregación de conversaciones](https://docs.codeg.app/guide/aggregation)** — importa las sesiones de todos los agentes compatibles a un espacio de trabajo unificado y con búsqueda, y retómalas donde las dejaste -- **[Colaboración multiagente](https://docs.codeg.app/guide/multi-agent)** — menciona a cualquier agente con `@` para delegar: los subagentes de distintos tipos se ejecutan como sesiones propias, en paralelo, dentro de una misma tarea -- **[Tareas pendientes](https://docs.codeg.app/guide/tasks)** — anota lo que hay que hacer y los agentes van vaciando la cola, cada tarea en su propio worktree, aterrizando en tu rama solo después de que la revises -- **[Agentes personalizados](https://docs.codeg.app/guide/custom-agents)** — registra cualquier otro agente compatible con ACP desde el registro público o su JSON de distribución; Codeg lo instala, registra su historial y lo trata como uno integrado -- **[El espacio de trabajo](https://docs.codeg.app/guide/workspace)** — todo el ciclo de ingeniería junto al agente: árbol de archivos, editor y diff, cambios de git, commit, una terminal integrada y [varias carpetas enlazadas en un mismo espacio de trabajo](https://docs.codeg.app/guide/workspace#work-across-several-folders) -- **[Vista dividida](https://docs.codeg.app/guide/workspace#split-the-conversation-view-into-groups)** — divide el área de conversación en tantos grupos de pestañas como quieras, arrastra pestañas y divisores entre ellos, y recupera la disposición — borradores incluidos — al reiniciar -- **[Git y worktrees](https://docs.codeg.app/guide/git)** — revisa y confirma cambios, gestiona cuentas remotas de Git y trabaja en paralelo con flujos `git worktree` integrados -- **[Uso de tokens](https://docs.codeg.app/guide/token-usage)** — un informe completo detrás del contador de la barra de estado: tendencias y tasa de aciertos de caché, un mapa de calor de actividad y desgloses por carpeta, agente, modelo y sesión -- **[Canales de chat](https://docs.codeg.app/guide/chat-channels)** — maneja tus agentes desde Telegram, Lark (Feishu) y WeChat: crea tareas, aprueba permisos y recibe novedades en vivo -- **[Automatizaciones](https://docs.codeg.app/guide/automations)** — guarda un compositor ya configurado como una automatización reutilizable que se ejecuta sin interfaz, por cron o cuando la lances — ya sea iniciando una sesión o dejando una tarea pendiente para que la revises luego -- **[Documentos de Office](https://docs.codeg.app/guide/office)** — crea, analiza, corrige y edita `.docx` / `.xlsx` / `.pptx` con el `officecli` incluido, con vista previa en vivo dentro de la pestaña -- **[Investigación científica](https://docs.codeg.app/guide/research)** — habilidades de investigación incluidas (generación de hipótesis, diseño experimental, estadística, visualización, evaluación crítica, búsqueda bibliográfica) que cualquier agente puede invocar -- **[Project Boot](https://docs.codeg.app/guide/project-boot)** — crea proyectos nuevos de forma visual, con vista previa en vivo, y ábrelos directamente en el espacio de trabajo -- **[MCP](https://docs.codeg.app/guide/mcp) & [Habilidades](https://docs.codeg.app/guide/skills)** — escaneo de servidores locales más búsqueda e instalación desde el registro, y habilidades gestionadas a nivel global o de proyecto -- **[Hazlo tuyo](https://docs.codeg.app/reference/settings/appearance)** — recolorea cualquiera de los doce temas token a token, fija el radio de las esquinas en toda la app, importa y exporta temas como JSON de shadcn, o escribe tu propio CSS -- **[Escritorio, servidor y Docker](https://docs.codeg.app/getting-started/deployment)** — una aplicación de escritorio nativa, un `codeg-server` independiente al que llegas desde cualquier navegador, o `docker compose up` -- **[iPhone, iPad y Android](https://docs.codeg.app/getting-started/installation#mobile-apps)** — clientes móviles nativos que se conectan a tu escritorio o servidor: inicia sesiones, recibe respuestas en streaming, aprueba permisos y explora proyectos desde donde estés +¿No está en la lista? Elige cualquier agente del registro público de ACP o pega su JSON de distribución: Codeg lo instala, comprueba que puede arrancar y lo trata como uno integrado. Los requisitos de ejecución de cada agente y dónde guarda sus sesiones están en [Agentes compatibles](https://docs.codeg.app/guide/supported-agents). -## 📦 Instalación y ejecución +## 📦 Instalación -**Escritorio** — descarga el instalador para macOS, Windows o Linux desde [Releases](https://github.com/xintaofei/codeg/releases) y sigue la [Instalación](https://docs.codeg.app/getting-started/installation). +**Escritorio** — los instaladores para macOS, Windows y Linux están en [Releases](https://github.com/spacering-net/codeg/releases/latest); los pasos de puesta en marcha, en [Instalación](https://docs.codeg.app/getting-started/installation). **Servidor** — ejecuta Codeg sin interfaz y accede desde cualquier navegador. En Linux o macOS: ```bash -curl -fsSL https://raw.githubusercontent.com/xintaofei/codeg/main/install.sh | bash +curl -fsSL https://raw.githubusercontent.com/spacering-net/codeg/main/install.sh | bash CODEG_STATIC_DIR=/usr/local/share/codeg/web codeg-server ``` En Windows, con PowerShell: ```powershell -irm https://raw.githubusercontent.com/xintaofei/codeg/main/install.ps1 | iex -$env:CODEG_STATIC_DIR="$env:LOCALAPPDATA\codeg\web"; codeg-server +irm https://raw.githubusercontent.com/spacering-net/codeg/main/install.ps1 | iex +$env:CODEG_STATIC_DIR="$env:LOCALAPPDATA\codeg-server\web"; codeg-server ``` **Docker** — el mismo servidor, en un solo contenedor: ```bash -docker run -d -p 3080:3080 -v codeg-data:/data ghcr.io/xintaofei/codeg:latest +docker run -d -p 3080:3080 -v codeg-data:/data ghcr.io/spacering-net/codeg:latest ``` -**Móvil** — instala la [app de iOS](https://apps.apple.com/app/codeg-client/id6785199071) o el [APK de Android](https://github.com/xintaofei/codeg-android/releases/latest) y apúntala al **Servicio web** de tu app de escritorio o a tu propio `codeg-server`: URL, token y listo. Los pasos de vinculación están en [Apps móviles](https://docs.codeg.app/getting-started/installation#mobile-apps). +En ambos casos, abre `http://:3080` en un navegador e introduce el token de acceso que el servidor muestra al arrancar (en el contenedor, lo ves con `docker logs`), o define `CODEG_TOKEN` para elegir el tuyo. + +**Móvil** — instala la [app de iOS](https://apps.apple.com/app/codeg-client/id6785199071) o el [APK de Android](https://github.com/xintaofei/codeg-android/releases/latest) y apúntala al **Servicio Web** de tu app de escritorio o a tu propio `codeg-server`: URL, token y listo. Los pasos de vinculación están en [Apps móviles](https://docs.codeg.app/getting-started/installation#mobile-apps). + +Compose, binarios precompilados, compilación desde el código y actualizaciones in situ se cubren en [Despliegue](https://docs.codeg.app/getting-started/deployment); las variables de entorno, en [Configuración](https://docs.codeg.app/getting-started/configuration). + +## 👥 Comunidad y soporte -Compose, binarios precompilados, compilación desde el código y actualizaciones in situ se cubren en [Despliegue](https://docs.codeg.app/getting-started/deployment); las variables de entorno, en [Configuración](https://docs.codeg.app/getting-started/configuration). Para compilar Codeg: [Desarrollo](https://docs.codeg.app/reference/development) y [Arquitectura](https://docs.codeg.app/reference/architecture). +- **WeChat** — escanea el código QR para unirte a nuestro grupo de debates, comentarios y novedades: -## 🔒 Privacidad y seguridad + + + WeChat + -- Local por defecto para el análisis, el almacenamiento y las operaciones sobre proyectos: solo se accede a la red en acciones iniciadas por ti -- Los modos web y servidor están protegidos con autenticación por token -- Compatible con el proxy del sistema para entornos corporativos +- **Incidencias** — ¿has encontrado un error o echas en falta una función? [Abre una incidencia](https://github.com/spacering-net/codeg/issues). +- **Privacidad** — local por defecto: el análisis, el almacenamiento y las operaciones sobre proyectos se quedan en tu máquina, y los modos web y servidor están protegidos con autenticación por token. Más detalles en [Privacidad y seguridad](https://docs.codeg.app/reference/privacy). +- **LinuxDO** — gracias a la comunidad de [LinuxDO](https://linux.do) por su apoyo. +- **Apóyanos** — [dale una estrella al repositorio](https://github.com/spacering-net/codeg) para seguir su evolución. -Más detalles en [Privacidad y seguridad](https://docs.codeg.app/reference/privacy). +## 🤝 Contribuir -## 👥 Comunidad +Las incidencias y los pull requests son bienvenidos. Para compilar Codeg tú mismo, empieza por [Desarrollo](https://docs.codeg.app/reference/development) y [Arquitectura](https://docs.codeg.app/reference/architecture). -- Escanea el código QR de abajo para unirte a nuestro grupo de WeChat para discusiones, comentarios y actualizaciones + + Colaboradores de Codeg + -WeChat -WeChat +## ⭐ Historial de estrellas -- Gracias a la comunidad de [LinuxDO](https://linux.do) por su apoyo + + + + + Star History Chart + + ## 🙏 Agradecimientos @@ -221,6 +363,8 @@ Más detalles en [Privacidad y seguridad](https://docs.codeg.app/reference/priva - [Superpowers](https://github.com/obra/superpowers) — impulsa el módulo de habilidades de expertos de Codeg - [OfficeCLI](https://github.com/iOfficeAI/OfficeCLI) — impulsa el flujo de trabajo de documentos Office de Codeg - [scientific-agent-skills](https://github.com/K-Dense-AI/scientific-agent-skills) — impulsa las habilidades de Investigación científica de Codeg (subconjunto con licencia MIT) +- [json-render](https://github.com/vercel-labs/json-render) — impulsa las tarjetas, tablas y gráficos del Renderizado de UI de Codeg +- [cua-driver](https://github.com/trycua/cua) — impulsa el Uso del ordenador de Codeg ## 📜 Licencia diff --git a/docs/readme/README.fr.md b/docs/readme/README.fr.md index 10c6abdfcd..74312a64ee 100644 --- a/docs/readme/README.fr.md +++ b/docs/readme/README.fr.md @@ -1,32 +1,44 @@ -# Codeg - -[![Release](https://img.shields.io/github/v/release/xintaofei/codeg)](https://github.com/xintaofei/codeg/releases) -[![Docs](https://img.shields.io/badge/docs-docs.codeg.app-3451b2)](https://docs.codeg.app) -[![License](https://img.shields.io/github/license/xintaofei/codeg)](../../LICENSE) - -

- English | - 简体中文 | - 繁體中文 | - 日本語 | - 한국어 | - Español | - Deutsch | - Français | - Português | - العربية +

+ Codeg logo Codeg +

+ +

+ GitHub stars + Latest release + Total downloads + License + Documentation + Platforms: macOS, Windows, Linux, Docker, iOS, Android

-Codeg (Code Generation) est un espace de travail de programmation multi-agents : faites tourner tous vos agents de codage IA au même endroit — et laissez-les travailler ensemble. +

+ English · 简体中文 · 繁體中文 · 日本語 · 한국어 · Español · Deutsch · Français · Português · العربية +

-Il regroupe les sessions de toutes les CLI d'agents supportées dans un espace de travail unique et consultable, et permet à un agent principal de déléguer à des sous-agents d'autres types au sein d'une même tâche. Le travail que vous préférez ne pas surveiller part sur un tableau de tâches à faire : chaque tâche sur sa propre branche, exécutée sans surveillance, en attente de votre relecture avant d'atterrir. Codeg fonctionne en application de bureau, en serveur autonome ou en conteneur Docker, avec des clients natifs iOS et Android pour les moments où vous n'êtes pas à votre bureau ; quinze agents sont intégrés, et vous pouvez enregistrer vous-même n'importe quel autre agent compatible ACP. +

+ L'espace de travail de programmation multi-agents.
+ Faites tourner tous vos agents de codage IA au même endroit — et laissez-les travailler ensemble. +

-![Espace de travail](../images/workspace-light.png#gh-light-mode-only) -![Espace de travail](../images/workspace-dark.png#gh-dark-mode-only) +

Télécharger Codeg · Documentation

-## 📖 Documentation +

+ + + L'espace de travail Codeg : une conversation avec un agent, à côté de ses diffs en direct et des fichiers du projet + +

-**La documentation complète se trouve sur [docs.codeg.app](https://docs.codeg.app)** — [Démarrage](https://docs.codeg.app/getting-started/) · [Guide](https://docs.codeg.app/guide/) · [Référence](https://docs.codeg.app/reference/) + + + + + + + + + +
🧩 Une interface pour tous les agents
Dix-neuf agents intégrés, et tout agent ACP peut s'y ajouter — tous affichés sous la même forme de conversation structurée, pas dans un terminal.
🔎 Des sessions qui voyagent
Importez, fouillez et reprenez l'historique que chaque agent conserve sur le disque, puis confiez-le à un autre agent.
🤝 Des agents qui travaillent ensemble
Déléguez d'un agent à l'autre avec un @, ou mettez en file des tâches à faire qui s'exécutent sans surveillance dans leurs propres worktrees.
🌍 Où que vous travailliez
Application de bureau, serveur auto-hébergé ou Docker, iPhone, iPad et Android — et Telegram, Lark ou WeChat.
## 💖 Sponsors @@ -45,13 +57,6 @@ Il regroupe les sessions de toutes les CLI d'agents supportées dans un espace d Merci à 合租巴士 pour son parrainage de ce projet ! 合租巴士 est une plateforme de relais d'IA fiable et efficace, offrant un relais très stable pour les principaux modèles tels que Codex et Claude Code. Le ratio de recharge est transparent (1:1), avec des subventions de taux Codex dès 0,08. Rejoignez le groupe depuis le site officiel pour obtenir 5 USD de crédit d'essai. - - - LQ router
- LQ router - - Merci au service de relais LQ router pour son parrainage de ce projet ! LQ router est un service de relais IA professionnel de niveau entreprise qui offre aux entreprises comme aux développeurs indépendants un accès stable, performant et économique aux API de modèles d'IA. La plateforme prend en charge les principaux modèles, notamment GPT, Claude, Grok et Gemini, avec des coefficients de facturation GPT Pro descendant jusqu'à 0,1×. Rejoignez le groupe depuis le site officiel et recevez 1 USD de crédit d'essai. - APIMart
@@ -72,10 +77,10 @@ Il regroupe les sessions de toutes les CLI d'agents supportées dans un espace d - Fluxion AI
- Fluxion AI + Sidrune AI
+ Sidrune AI - Merci à Fluxion AI pour son parrainage de ce projet ! Fluxion AI offre un accès API rapide, fiable et économique à GPT, Claude, Gemini et à d'autres modèles d'IA de premier plan via une seule API unifiée. Les nouveaux utilisateurs peuvent recevoir 3 USD de crédits d'API en passant par notre lien dédié. + Merci à Sidrune AI pour son parrainage de ce projet ! Sidrune AI donne accès à GPT, Claude et à d'autres grands modèles d'IA via une seule API. Les nouveaux utilisateurs qui s'inscrivent via notre lien dédié avec le code promo SDRCODEG reçoivent 3 USD de crédits d'API. @@ -88,132 +93,269 @@ Il regroupe les sessions de toutes les CLI d'agents supportées dans un espace d > Vous souhaitez devenir sponsor de Codeg ? [Contactez-nous par e-mail.](mailto:itpkcn@gmail.com) -## 🤖 Agents supportés - -Claude Code · Codex · Gemini · OpenClaw · OpenCode · Cline · Hermes · CodeBuddy · Kimi Code · Pi · Grok · Cursor · DeepSeek Harness · Qoder · Google Antigravity - -Codeg installe, épingle et met à jour la plupart d'entre eux pour vous. Voir [Agents supportés](https://docs.codeg.app/guide/supported-agents) pour la liste complète, les prérequis d'exécution de chacun et l'emplacement de ses sessions sur le disque. - -Pas dans la liste ? Ajoutez-le vous-même. Choisissez un agent dans le registre public ACP ou collez son JSON de distribution : Codeg l'installe, vérifie qu'il démarre et le traite comme un agent intégré — il apparaît dans le sélecteur, accepte la délégation `@` et les skills, et ses conversations sont enregistrées et consultables même quand l'agent ne conserve aucun historique. → [Agents personnalisés](https://docs.codeg.app/guide/custom-agents) - -## 🤝 Collaboration multi-agents - -La collaboration multi-agents, réduite à une seule touche : tapez `@`, choisissez un agent, envoyez. Codeg s'occupe de l'orchestration — il lance chaque agent mentionné dans sa propre session, lui confie la tâche et renvoie son travail dans le fil où vous êtes déjà. Mentionnez-en deux et ils avancent côte à côte : Claude Code rédige pendant que Codex relit. Aucun changement de contexte, aucun copier-coller entre terminaux. +## ✨ Fonctionnalités -Et quand un agent lance ses propres sous-agents — Claude Code, Codex, Grok et OpenCode le font tous — chaque enfant a sa carte, qui se remplit pendant qu'il travaille au lieu d'arriver d'un bloc à la fin. Ouvrez-la pour lire la session de l'enfant lui-même. - -![Délégation d'une tâche à des sous-agents depuis une seule conversation Codeg](../images/collaboration-light.gif#gh-light-mode-only) -![Délégation d'une tâche à des sous-agents depuis une seule conversation Codeg](../images/collaboration-dark.gif#gh-dark-mode-only) - -## ✅ Tâches à faire - -Tout travail n'exige pas que vous le regardiez. Notez-le — un titre, une description, l'agent qui doit l'exécuter — et Codeg lui confie **sa propre copie du code** : un worktree git à côté de votre projet, sur sa propre branche. Plusieurs tournent à la fois sans se toucher, ni toucher l'arbre dans lequel vous travaillez. Programmez-en une pour ce soir, ou laissez un dossier vider sa file tout seul, dans la limite de parallélisme que vous fixez. - -Une tâche terminée ne se fusionne pas toute seule. Elle passe dans la colonne de relecture et attend : lisez le diff, renvoyez-la pour un tour de plus, ou acceptez-la — et c'est l'agent qui la fait atterrir, en ramenant d'abord votre branche de base dans son worktree et en y résolvant les conflits. Ensuite Codeg ne le croit pas sur parole : il vérifie git lui-même, et une fusion qu'il ne peut pas confirmer retourne en relecture au lieu d'annoncer un succès. - -![Le tableau des tâches à faire, où les tâches passent de À faire à En cours puis à Terminé](../images/task-light.png#gh-light-mode-only) -![Le tableau des tâches à faire, où les tâches passent de À faire à En cours puis à Terminé](../images/task-dark.png#gh-dark-mode-only) - -## 🪟 Vue divisée - -Une seule barre d'onglets ne suffit pas toujours. Faites un clic droit sur un onglet de conversation pour diviser la vue **à droite** ou **vers le bas**, autant de fois que vous voulez : deux volets côte à côte, une pile de trois, une grille. Chaque groupe est un espace de travail à part entière — ses onglets, son en-tête, son propre bouton de nouvelle conversation — Claude Code peut donc refactoriser dans un volet pendant que Codex relit un diff dans le suivant. - -Faites glisser un onglet d'un groupe à l'autre : sa session continue de streamer pendant le déménagement. Faites glisser la séparation entre deux groupes pour changer le partage de l'espace. Votre disposition est mémorisée par espace de travail, brouillons compris : rouvrez Codeg et la division revient, avec le texte jamais envoyé toujours dans le champ. - -![Division de la zone de conversation en une grille de groupes d'onglets](../images/split-light.gif#gh-light-mode-only) -![Division de la zone de conversation en une grille de groupes d'onglets](../images/split-dark.gif#gh-dark-mode-only) - -## 📄 Documents Office - -Demandez une présentation, un rapport ou un classeur : l'agent produit un vrai `.pptx` / `.docx` / `.xlsx` — pendant que le volet de droite le rend en direct. Chaque modification arrive d'elle-même dans l'aperçu : les diapositives se remplissent, les tableaux prennent forme, les chiffres se posent dans les cellules. La diapositive 4 ne vous plaît pas ? Dites-le au message suivant — l'agent modifie le même fichier sur place et l'aperçu suit. Aucun export, aucune application Office externe, aucune sortie de Codeg. - -![Un agent modifiant un document Office à côté de son aperçu en direct](../images/office-light.png#gh-light-mode-only) -![Un agent modifiant un document Office à côté de son aperçu en direct](../images/office-dark.png#gh-dark-mode-only) - -## 💻 Espace de travail + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +### Une interface pour tous les agents + +Dix-neuf agents sont intégrés, et tout autre agent ACP peut les rejoindre depuis le registre public ou via son JSON de distribution. Codeg parle l'Agent Client Protocol avec chacun d'eux : tous bénéficient donc de la même conversation riche — cartes d'outils, diffs en direct, plans et demandes d'autorisation — au lieu d'un terminal à déchiffrer en plissant les yeux. Activez le Rendu d'interface pour un agent et il pourra répondre avec des cartes, des tableaux et des graphiques interactifs. -Un seul espace de travail, tous les agents. Quel que soit celui qui travaille — Claude Code, Codex, Cursor —, il le fait dans le même éditeur, avec les mêmes diffs en direct et le même client git ; et ce qu'il produit, ce sont de vrais fichiers de votre dépôt, qui changent sous vos yeux. Rattachez d'autres répertoires — une bibliothèque partagée, un service voisin, le dépôt de documentation — et l'arborescence, la recherche et l'agent lui-même les traitent comme un seul espace de travail. +[Documentation →](https://docs.codeg.app/guide/supported-agents) · [Agents personnalisés →](https://docs.codeg.app/guide/custom-agents) · [Rendu d'interface →](https://docs.codeg.app/guide/skills#cards-tables-and-charts-in-replies) -**Sessions.** Récupérez l'historique que vous avez déjà : les sessions passées de tous les agents installés, importées en un clic et reprenables là où vous les aviez laissées. Une fois dedans, elles cessent d'être des silos séparés — mentionnez une ancienne session avec `@` et l'agent auquel vous parlez peut la lire, même si un autre agent l'a écrite ; l'exécution Codex d'aujourd'hui repart donc de là où la session Claude Code de la semaine dernière s'est arrêtée. Aussi longue que devienne une conversation, elle s'ouvre sur ses derniers tours et charge le reste au fur et à mesure que vous remontez. + + + + Une interface pour tous les agents + +
+ +### Chaque session, à portée de recherche + +Codeg lit l'historique que chaque CLI d'agent conserve sur le disque : importez-le en un clic, cherchez dans l'ensemble et reprenez n'importe quelle session là où elle s'était arrêtée. Mentionnez une ancienne session avec `@` et l'agent auquel vous parlez peut la lire — même si un autre agent l'a écrite. Donnez aux conversations des étiquettes de couleur, globales ou propres à un dossier, et filtrez la barre latérale avec elles. + +[Documentation →](https://docs.codeg.app/guide/aggregation) · [Étiquettes →](https://docs.codeg.app/guide/workspace#tag-conversations) -**Fichiers.** Les modifications de l'agent apparaissent sous forme de diffs à côté de la conversation, au fur et à mesure. Ouvrez n'importe quel fichier dans un vrai éditeur avec coloration syntaxique, envoyez un fichier — ou juste une sélection — directement à l'agent avec `⌘L`, et prévisualisez Markdown, HTML, images et documents Office dans le même volet. + + + + Chaque session, à portée de recherche + +
+ +### Collaboration multi-agents + +Tapez `@`, choisissez un agent, envoyez. Chaque agent mentionné tourne dans sa propre session, côte à côte, et son travail arrive en direct dans votre fil — Claude Code rédige pendant que Codex relit — tandis que les sous-agents apparaissent sous forme de cartes qui se remplissent pendant qu'ils travaillent. + +[Documentation →](https://docs.codeg.app/guide/multi-agent) -**Git.** Un client complet, pas un simple indicateur d'état : committez directement depuis l'onglet Modifications — un message, Entrée — avec pull, fetch, push et remise à côté, et un historique qui montre quels commits sont poussés. Créez des branches, fusionnez, rebasez, réinitialisez ou comparez avec une autre branche, et mettez à jour ou poussez n'importe quelle branche sans basculer dessus. Les conflits ouvrent un éditeur de fusion à trois volets où vous acceptez bloc par bloc ou tapez vous-même la résolution. Et les worktrees réduisent le travail en parallèle à une seule action — une nouvelle branche, son propre répertoire et une conversation toute neuve enracinée dedans, pour qu'une flotte d'agents construise des fonctionnalités différentes en même temps sans se marcher sur les fichiers. + + + + Collaboration multi-agents + +
+ +### Des tâches à faire exécutées sans surveillance + +Notez un travail et passez à autre chose. Chaque tâche à faire obtient son propre worktree git et sa propre branche, démarre tout de suite ou selon une planification, puis attend d'être validée ; acceptez le diff et l'agent la fait atterrir, et Codeg vérifie git avant de la déclarer terminée. Le panneau du dépôt peut même les créer pour vous : il reprend les issues et les pull requests selon leurs étiquettes et leur auteur, à intervalles réguliers ou dès qu'un webhook arrive. + +[Documentation →](https://docs.codeg.app/guide/tasks) · [Traitement automatique →](https://docs.codeg.app/guide/repository#let-it-pick-items-up-by-itself) + + + + + Des tâches à faire exécutées sans surveillance + +
+ +### Canevas infini + +Organisez votre travail dans l'espace : conversations, fichiers, terminaux et notes deviennent des cartes sur un tableau, regroupées par dossier et par agent, pour que plusieurs agents puissent tourner côte à côte, bien en vue. + +[Documentation →](https://docs.codeg.app/guide/canvas) + + + + + Canevas infini + +
+ +### Bureau, serveur, mobile et chat + +Faites tourner Codeg en application de bureau, en serveur auto-hébergé que vous ouvrez dans n'importe quel navigateur, ou dans un seul conteneur Docker, et ouvrez un serveur distant depuis l'application de bureau dans sa propre fenêtre d'espace de travail. Des clients natifs pour iPhone, iPad et Android — ainsi que des canaux Telegram, Lark et WeChat — gardent vos agents à portée de main, tandis que vos fichiers et vos sessions restent sur des machines que vous contrôlez. + +[Documentation →](https://docs.codeg.app/getting-started/deployment) · [Espaces de travail distants →](https://docs.codeg.app/guide/workspace#desktop-and-browser) · [Applications mobiles →](https://docs.codeg.app/getting-started/installation#mobile-apps) · [Canaux de chat →](https://docs.codeg.app/guide/chat-channels) + + + + + Bureau, serveur, mobile et chat + +
+ +### Documents Office et recherche + +Demandez une présentation, un rapport ou un classeur, et regardez le vrai `.pptx`, `.docx` ou `.xlsx` s'afficher en direct à côté de la conversation ; les PDF s'ouvrent dans leur propre visionneuse. Les compétences de recherche intégrées — hypothèses, plan d'expérience, statistiques, recherche bibliographique — fonctionnent avec n'importe quel agent. + +[Documentation →](https://docs.codeg.app/guide/office) · [Recherche →](https://docs.codeg.app/guide/research) + + + + + Documents Office et recherche + +
+ +### Utilisation du navigateur et de l'ordinateur + +Dans l'application de bureau, les liens s'ouvrent dans un navigateur intégré à côté de vos fichiers, au format ordinateur, tablette ou téléphone : confiez à l'agent une page, un élément, une capture d'écran ou une erreur de console, ou laissez-le piloter une page que vous partagez. En préversion, les agents peuvent aussi voir et manipuler les fenêtres que vous partagez — et le bouton Arrêter n'est qu'à un clic. + +[Documentation →](https://docs.codeg.app/guide/browser) · [Utilisation de l'ordinateur →](https://docs.codeg.app/guide/computer-use) + + + + + Utilisation du navigateur et de l'ordinateur + +
+ +### Toute la boucle d'ingénierie + +Un éditeur, des diffs en direct et côte à côte, un client git complet avec un éditeur de fusion à trois volets, des worktrees en un clic, un terminal intégré et des vues divisées — le tout à côté de l'agent, sur les vrais fichiers de votre dépôt. + +[Documentation →](https://docs.codeg.app/guide/workspace) · [Git et worktrees →](https://docs.codeg.app/guide/git) + + + + + Toute la boucle d'ingénierie + +
-**Quand ça se passe mal.** Un tour qui échoue ne dit pas seulement que quelque chose a raté : sur Claude Code et Codex, il en nomme le type — problème de connexion, problème d'accès, limite atteinte, requête refusée, problème de service — et accroche sous le compositeur un bandeau ne portant que ce qui aiderait vraiment : Réessayer, Se connecter ou une nouvelle session. Les tentatives que l'agent fait de lui-même s'affichent en ambre et se résument en une seule ligne « Rétabli ». Et l'indicateur de connexion sous le compositeur est un bouton : cliquez pour connaître l'état réel de la session, avec une Reconnexion qui reprend au lieu de repartir de zéro. +**Également inclus :** -## 📱 iPhone, iPad et Android +- **[Panneau du dépôt](https://docs.codeg.app/guide/repository)** — issues, pull requests, vérifications et fusions pour GitHub, GitLab, Gitea et Forgejo ; toute issue ou PR peut devenir une tâche à faire +- **[Automatisations](https://docs.codeg.app/guide/automations)** — enregistrez une zone de saisie configurée et exécutez-la sans interface, selon une planification cron ou à la demande +- **[Utilisation des tokens](https://docs.codeg.app/guide/token-usage)** — tendances, taux de succès du cache, carte de chaleur d'activité, utilisation par dossier, agent, modèle et session, et ce que cela coûterait aux prix catalogue de l'API +- **[Bifurquer et réorienter](https://docs.codeg.app/guide/workspace#follow-along-%E2%80%94-the-conversation)** — sur les agents qui le prennent en charge, faites bifurquer une conversation depuis une réponse terminée, ou envoyez un message dans un tour encore en cours +- **[Compétences](https://docs.codeg.app/guide/skills) et [MCP](https://docs.codeg.app/guide/mcp)** — packs de compétences par agent, scan MCP local, recherche et installation depuis le registre +- **[Lanceur de projet](https://docs.codeg.app/guide/project-boot)** — créez visuellement le squelette d'un nouveau projet, avec un aperçu en direct +- **[Notifications](https://docs.codeg.app/reference/settings/general#desktop-notifications)** — notifications du bureau, sons, et un bouton de barre des tâches qui clignote ou une icône du Dock qui rebondit quand un tour se termine ou qu'un agent a besoin de vous +- **[À votre image](https://docs.codeg.app/reference/settings/appearance)** — douze thèmes que vous pouvez recolorer token par token, fonds d'écran, rayon des coins, largeur du chat, CSS personnalisé et une mascotte de bureau — dans n'importe laquelle des dix langues de l'interface +- **[Sauvegarde et synchronisation](https://docs.codeg.app/reference/settings/system#backup-restore)** — sauvegardes chiffrées et synchronisation de la configuration entre machines, via un fichier ou votre propre serveur WebDAV +- **[Schéma d'URL](../../docs/url-scheme.md)** — `codeg://session/` ouvre une conversation depuis une autre application (bureau) +- **[Ligne de commande](../../docs/cli.md)** — `codeg-cli` exécute un prompt via un Codeg déjà lancé, bureau ou serveur, depuis un script ou une tâche CI, et affiche la réponse ou des événements JSON +- **Et plus encore** — presque chaque version apporte du nouveau ; les [notes de version](https://github.com/spacering-net/codeg/releases) en donnent la liste complète -Quittez votre bureau, pas votre travail. Les clients natifs iOS et Android se connectent au Codeg que vous faites déjà tourner — le **Service web** de votre application de bureau, ou votre propre `codeg-server` — et de là vous lancez des sessions, suivez en direct les réponses et les appels d'outils, répondez aux demandes d'autorisation et parcourez projets et branches. Rien ne migre sur le téléphone : vos fichiers, les CLI des agents et les conversations restent sur la machine qui exécute Codeg, et le jeton d'accès est gardé dans le Trousseau iOS ou protégé par Android Keystore. Les deux clients sont open source ([iOS](https://github.com/xintaofei/codeg-ios), [Android](https://github.com/xintaofei/codeg-android)) ; l'appairage tient en trois étapes, détaillées dans [Applications mobiles](https://docs.codeg.app/getting-started/installation#mobile-apps). +## 🤖 Agents pris en charge -| iPhone et iPad | Android | -| :---: | :---: | -| Démarrage d'une session depuis le client Codeg pour iOS | La réponse d'un agent qui arrive en direct dans le client Codeg pour Android | +Codeg communique avec chaque agent via l'[Agent Client Protocol](https://agentclientprotocol.com) : chacun bénéficie ainsi de la même interface structurée. Dix-neuf sont intégrés, et Codeg installe, épingle et met à jour la plupart d'entre eux pour vous : -## ✨ Points forts +

+ Claude Code   + Codex   + Gemini CLI   + OpenClaw   + OpenCode   + Cline   + Hermes Agent   + CodeBuddy   + Kimi Code   + Pi   + Grok   + Cursor   + DeepSeek Harness   + Qoder   + Google Antigravity   + Kiro CLI   + ZCode   + TRAE CLI   + Command Code   + + tout agent ACP +

-- **[Agrégation des conversations](https://docs.codeg.app/guide/aggregation)** — importez les sessions de tous les agents supportés dans un espace de travail unifié et consultable, et reprenez-les là où vous vous étiez arrêté -- **[Collaboration multi-agents](https://docs.codeg.app/guide/multi-agent)** — mentionnez un agent avec `@` pour déléguer : les sous-agents de types différents s'exécutent chacun dans sa session, en parallèle, au sein d'une même tâche -- **[Tâches à faire](https://docs.codeg.app/guide/tasks)** — notez ce qu'il y a à faire et les agents vident la file, chaque tâche dans son propre worktree, pour n'atterrir sur votre branche qu'après votre relecture -- **[Agents personnalisés](https://docs.codeg.app/guide/custom-agents)** — enregistrez n'importe quel autre agent compatible ACP depuis le registre public ou son JSON de distribution ; Codeg l'installe, enregistre son historique et le traite comme un agent intégré -- **[L'espace de travail](https://docs.codeg.app/guide/workspace)** — toute la boucle d'ingénierie à côté de l'agent : arborescence, éditeur et diff, changements git, commit, terminal intégré et [plusieurs dossiers réunis en un seul espace de travail](https://docs.codeg.app/guide/workspace#work-across-several-folders) -- **[Vue divisée](https://docs.codeg.app/guide/workspace#split-the-conversation-view-into-groups)** — divisez la zone de conversation en autant de groupes d'onglets que vous voulez, faites glisser onglets et séparations entre eux, et retrouvez la disposition — brouillons compris — au redémarrage -- **[Git et worktrees](https://docs.codeg.app/guide/git)** — relisez et validez vos changements, gérez vos comptes Git distants et travaillez en parallèle grâce aux flux `git worktree` intégrés -- **[Utilisation des tokens](https://docs.codeg.app/guide/token-usage)** — derrière le compteur de la barre d'état, un rapport complet : tendances et taux de succès du cache, carte de chaleur d'activité, et répartitions par dossier, agent, modèle et session -- **[Canaux de discussion](https://docs.codeg.app/guide/chat-channels)** — pilotez vos agents depuis Telegram, Lark (Feishu) et WeChat : créez des tâches, approuvez des permissions, suivez l'avancement en direct -- **[Automatisations](https://docs.codeg.app/guide/automations)** — enregistrez un compositeur entièrement configuré comme une automatisation réutilisable, exécutée sans interface, selon un planning cron ou à la demande — en lançant une session, ou en déposant une tâche à faire que vous relirez plus tard -- **[Documents Office](https://docs.codeg.app/guide/office)** — créez, analysez, relisez et modifiez des `.docx` / `.xlsx` / `.pptx` via l'`officecli` intégré, avec aperçu en direct dans l'onglet -- **[Recherche scientifique](https://docs.codeg.app/guide/research)** — des compétences de recherche intégrées (formulation d'hypothèses, plan d'expérience, statistiques, visualisation, évaluation critique, recherche bibliographique) que n'importe quel agent peut invoquer -- **[Project Boot](https://docs.codeg.app/guide/project-boot)** — créez visuellement de nouveaux projets, avec aperçu en direct, puis ouvrez-les directement dans l'espace de travail -- **[MCP](https://docs.codeg.app/guide/mcp) & [Skills](https://docs.codeg.app/guide/skills)** — scan des serveurs locaux, recherche et installation depuis le registre, et compétences gérées au niveau global ou projet -- **[À votre image](https://docs.codeg.app/reference/settings/appearance)** — recolorez n'importe lequel des douze thèmes token par token, réglez l'arrondi des angles pour toute l'app, importez et exportez des thèmes en JSON shadcn, ou écrivez votre propre CSS -- **[Bureau, serveur et Docker](https://docs.codeg.app/getting-started/deployment)** — une application de bureau native, un `codeg-server` autonome accessible depuis n'importe quel navigateur, ou `docker compose up` -- **[iPhone, iPad et Android](https://docs.codeg.app/getting-started/installation#mobile-apps)** — des clients mobiles natifs reliés à votre poste ou à votre serveur : lancez des sessions, recevez les réponses en flux, approuvez les permissions et parcourez vos projets où que vous soyez +Pas dans la liste ? Choisissez n'importe quel agent dans le registre public ACP ou collez son JSON de distribution — Codeg l'installe, vérifie qu'il démarre et le traite comme un agent intégré. Prérequis d'exécution et emplacement des sessions de chaque agent : [Agents pris en charge](https://docs.codeg.app/guide/supported-agents). -## 📦 Installation et exécution +## 📦 Installation -**Bureau** — téléchargez l'installateur macOS, Windows ou Linux depuis les [Releases](https://github.com/xintaofei/codeg/releases), puis suivez l'[Installation](https://docs.codeg.app/getting-started/installation). +**Bureau** — les installateurs pour macOS, Windows et Linux se trouvent dans les [Releases](https://github.com/spacering-net/codeg/releases/latest) ; les étapes de mise en place sont dans [Installation](https://docs.codeg.app/getting-started/installation). **Serveur** — faites tourner Codeg sans interface et accédez-y depuis n'importe quel navigateur. Sous Linux ou macOS : ```bash -curl -fsSL https://raw.githubusercontent.com/xintaofei/codeg/main/install.sh | bash +curl -fsSL https://raw.githubusercontent.com/spacering-net/codeg/main/install.sh | bash CODEG_STATIC_DIR=/usr/local/share/codeg/web codeg-server ``` Sous Windows, dans PowerShell : ```powershell -irm https://raw.githubusercontent.com/xintaofei/codeg/main/install.ps1 | iex -$env:CODEG_STATIC_DIR="$env:LOCALAPPDATA\codeg\web"; codeg-server +irm https://raw.githubusercontent.com/spacering-net/codeg/main/install.ps1 | iex +$env:CODEG_STATIC_DIR="$env:LOCALAPPDATA\codeg-server\web"; codeg-server ``` **Docker** — le même serveur, dans un conteneur : ```bash -docker run -d -p 3080:3080 -v codeg-data:/data ghcr.io/xintaofei/codeg:latest +docker run -d -p 3080:3080 -v codeg-data:/data ghcr.io/spacering-net/codeg:latest ``` -**Mobile** — installez l'[app iOS](https://apps.apple.com/app/codeg-client/id6785199071) ou l'[APK Android](https://github.com/xintaofei/codeg-android/releases/latest), puis pointez-la vers le **Service web** de votre application de bureau ou vers votre propre `codeg-server` : URL, jeton, c'est prêt. Les étapes d'appairage sont dans [Applications mobiles](https://docs.codeg.app/getting-started/installation#mobile-apps). +Dans les deux cas, ouvrez `http://:3080` dans un navigateur et saisissez le jeton d'accès que le serveur affiche au démarrage (pour le conteneur, `docker logs` le montre), ou définissez `CODEG_TOKEN` pour choisir le vôtre. + +**Mobile** — installez l'[app iOS](https://apps.apple.com/app/codeg-client/id6785199071) ou l'[APK Android](https://github.com/xintaofei/codeg-android/releases/latest), puis pointez-la vers le **Service Web** de votre application de bureau ou vers votre propre `codeg-server` : URL, jeton, c'est prêt. Les étapes d'appairage sont dans [Applications mobiles](https://docs.codeg.app/getting-started/installation#mobile-apps). + +Compose, binaires précompilés, compilation depuis les sources et mises à jour sur place sont traités dans [Déploiement](https://docs.codeg.app/getting-started/deployment) ; les variables d'environnement dans [Configuration](https://docs.codeg.app/getting-started/configuration). + +## 👥 Communauté et support -Compose, binaires précompilés, compilation depuis les sources et mises à jour sur place sont traités dans [Déploiement](https://docs.codeg.app/getting-started/deployment) ; les variables d'environnement dans [Configuration](https://docs.codeg.app/getting-started/configuration). Pour compiler Codeg lui-même : [Développement](https://docs.codeg.app/reference/development) et [Architecture](https://docs.codeg.app/reference/architecture). +- **WeChat** — scannez le QR code et rejoignez notre groupe pour des discussions, des retours et des mises à jour : -## 🔒 Confidentialité et sécurité + + + WeChat + -- Local d'abord par défaut pour l'analyse, le stockage et les opérations sur les projets — les accès réseau n'ont lieu que sur des actions que vous déclenchez -- Les modes web et serveur sont protégés par une authentification par jeton -- Prise en charge du proxy système pour les environnements d'entreprise +- **Issues** — un bug trouvé ou une fonctionnalité manquante ? [Ouvrez une issue](https://github.com/spacering-net/codeg/issues). +- **Confidentialité** — local d'abord : l'analyse, le stockage et les opérations sur les projets restent sur votre machine, et les modes web et serveur sont protégés par une authentification par jeton. Détails dans [Confidentialité et sécurité](https://docs.codeg.app/reference/privacy). +- **LinuxDO** — merci à la communauté [LinuxDO](https://linux.do) pour son soutien. +- **Soutenez-nous** — [mettez une étoile au dépôt](https://github.com/spacering-net/codeg) pour suivre le projet. -Détails dans [Confidentialité et sécurité](https://docs.codeg.app/reference/privacy). +## 🤝 Contribuer -## 👥 Communauté +Les issues et les pull requests sont les bienvenues. Pour compiler Codeg vous-même, commencez par [Développement](https://docs.codeg.app/reference/development) et [Architecture](https://docs.codeg.app/reference/architecture). -- Scannez le QR code ci-dessous pour rejoindre notre groupe WeChat pour des discussions, des retours et des mises à jour + + Contributeurs de Codeg + -WeChat -WeChat +## ⭐ Historique des étoiles -- Merci à la communauté [LinuxDO](https://linux.do) pour son soutien + + + + + Star History Chart + + ## 🙏 Remerciements @@ -221,6 +363,8 @@ Détails dans [Confidentialité et sécurité](https://docs.codeg.app/reference/ - [Superpowers](https://github.com/obra/superpowers) — alimente le module de compétences d'experts de Codeg - [OfficeCLI](https://github.com/iOfficeAI/OfficeCLI) — alimente le flux de travail des documents Office de Codeg - [scientific-agent-skills](https://github.com/K-Dense-AI/scientific-agent-skills) — alimente les compétences de Recherche scientifique de Codeg (sous-ensemble sous licence MIT) +- [json-render](https://github.com/vercel-labs/json-render) — alimente les cartes, tableaux et graphiques du Rendu d'interface de Codeg +- [cua-driver](https://github.com/trycua/cua) — alimente l'Utilisation de l'ordinateur de Codeg ## 📜 Licence diff --git a/docs/readme/README.ja.md b/docs/readme/README.ja.md index b4cb30329f..8186ac918a 100644 --- a/docs/readme/README.ja.md +++ b/docs/readme/README.ja.md @@ -1,32 +1,44 @@ -# Codeg - -[![Release](https://img.shields.io/github/v/release/xintaofei/codeg)](https://github.com/xintaofei/codeg/releases) -[![Docs](https://img.shields.io/badge/docs-docs.codeg.app-3451b2)](https://docs.codeg.app) -[![License](https://img.shields.io/github/license/xintaofei/codeg)](../../LICENSE) - -

- English | - 简体中文 | - 繁體中文 | - 日本語 | - 한국어 | - Español | - Deutsch | - Français | - Português | - العربية +

+ Codeg logo Codeg +

+ +

+ GitHub stars + Latest release + Total downloads + License + Documentation + Platforms: macOS, Windows, Linux, Docker, iOS, Android

-Codeg(Code Generation)はマルチエージェント・コーディングワークスペースです。あらゆる AI コーディングエージェントをひとつの場所で動かし、そして協働させます。 +

+ English · 简体中文 · 繁體中文 · 日本語 · 한국어 · Español · Deutsch · Français · Português · العربية +

-対応するすべてのエージェント CLI のセッションを検索可能なワークスペースへ集約し、ひとつのタスクの中でメインエージェントが別種類のサブエージェントへ委譲できます。付きっきりで見ていたくない作業は ToDo タスクに書いておけば、それぞれが専用のブランチで無人のまま進み、あなたのレビューを待ってから取り込まれます。Codeg はデスクトップアプリ・スタンドアロンサーバー・Docker コンテナのいずれとしても動作し、ネイティブの iOS / Android クライアントもあるのでデスクを離れても作業を続けられます。エージェントは 15 種を内蔵し、ACP 互換の任意のエージェントを自分で登録することもできます。 +

+ マルチエージェント・コーディングワークスペース。
+ あらゆる AI コーディングエージェントをひとつの場所で動かし、そして協働させます。 +

-![ワークスペース](../images/workspace-light.png#gh-light-mode-only) -![ワークスペース](../images/workspace-dark.png#gh-dark-mode-only) +

Codeg をダウンロード · ドキュメント

-## 📖 ドキュメント +

+ + + Codeg のワークスペース:エージェントとの会話と、その隣に並ぶライブ diff とプロジェクトのファイル + +

-**完全なドキュメントは [docs.codeg.app](https://docs.codeg.app)** — [はじめに](https://docs.codeg.app/getting-started/) · [ガイド](https://docs.codeg.app/guide/) · [リファレンス](https://docs.codeg.app/reference/) + + + + + + + + + +
🧩 すべてのエージェントを、ひとつのインターフェースで
19 種のエージェントを内蔵し、ACP エージェントならどれでも加えられます — いずれもターミナルではなく、同じ構造化された会話として表示されます。
🔎 引き継げるセッション
各エージェントがディスクに残す履歴をインポート・検索・再開でき、さらに別のエージェントへ引き継げます。
🤝 協働するエージェント
@ ひとつでエージェント間の委譲ができ、ToDo タスクをキューに積めば、それぞれ専用のワークツリーで無人のまま進みます。
🌍 どこで作業していても
デスクトップアプリ、セルフホストのサーバーまたは Docker、iPhone・iPad・Android — さらに Telegram、Lark、WeChat からも。
## 💖 スポンサー @@ -45,13 +57,6 @@ Codeg(Code Generation)はマルチエージェント・コーディングワ 本プロジェクトをスポンサードしてくださった合租巴士に感謝します!合租巴士は、Codex や Claude Code などの主流モデルに高い安定性の中継機能を提供する、信頼性が高く効率的な AI 中継サービスプラットフォームです。チャージ比率は透明(1:1)で、Codex のレート補助は 0.08 から利用可能です。公式サイトからグループに参加すると $5 分の体験クレジットがもらえます。 - - - LQ router
- LQ router - - 本プロジェクトをスポンサードしてくださった LQ router 中継サービスに感謝します!LQ router は、エンタープライズ級の AI 中継サービスを専門とし、企業や個人開発者に安定・高効率・低コストな AI モデル API の接続サービスを提供します。GPT、Claude、Grok、Gemini などの主要モデルに対応し、GPT Pro の課金倍率は最低 0.1 倍です。公式サイトからグループに参加すると $1 分の体験クレジットがもらえます。 - APIMart
@@ -72,10 +77,10 @@ Codeg(Code Generation)はマルチエージェント・コーディングワ - Fluxion AI
- Fluxion AI + Sidrune AI
+ Sidrune AI - 本プロジェクトをスポンサードしてくださった Fluxion AI に感謝します!Fluxion AI は、統一されたひとつの API を通じて、GPT、Claude、Gemini をはじめとする主要な AI モデルへの高速・安定・低コストなアクセスを提供します。新規ユーザーは専用リンクから登録すると $3 分の API クレジットを受け取れます。 + 本プロジェクトをスポンサードしてくださった Sidrune AI に感謝します!Sidrune AI は、ひとつの API で GPT、Claude をはじめとする主要な AI モデルへのアクセスを提供します。新規ユーザーは専用リンクからプロモーションコード SDRCODEG で登録すると $3 分の API クレジットを受け取れます。 @@ -88,132 +93,269 @@ Codeg(Code Generation)はマルチエージェント・コーディングワ > Codeg のスポンサーになりませんか?[メールでお問い合わせください。](mailto:itpkcn@gmail.com) -## 🤖 対応エージェント - -Claude Code · Codex · Gemini · OpenClaw · OpenCode · Cline · Hermes · CodeBuddy · Kimi Code · Pi · Grok · Cursor · DeepSeek Harness · Qoder · Google Antigravity - -その多くは Codeg がインストール・バージョン固定・更新まで面倒を見ます。全リスト、各エージェントの実行環境要件、セッションの保存場所は [対応エージェント](https://docs.codeg.app/guide/supported-agents) を参照してください。 - -リストにない?自分で追加できます。公開されている ACP レジストリから選ぶか、distribution JSON を貼り付けるだけで、Codeg がインストールし、起動できるかを事前に確認し、あとは内蔵エージェントと同じように扱います — ピッカーに並び、`@` 委譲やスキルにも対応し、そのエージェント自身が履歴を残さない場合でも会話は記録され検索できます。→ [カスタムエージェント](https://docs.codeg.app/guide/custom-agents) - -## 🤝 マルチエージェント協調 - -マルチエージェント協調は、キーひとつで完結します。`@` を打ち、エージェントを選び、送信するだけ。あとのスケジューリングは Codeg が引き受けます — 指名されたエージェントをそれぞれ独立したセッションとして起動し、タスクを引き渡し、その作業を今いるスレッドへ流し込みます。ふたつ指名すれば並走します。Claude Code が下書きし、Codex がレビューする。コンテキストの切り替えも、ターミナル間のコピー&ペーストも不要です。 +## ✨ 機能 -エージェントが自前のサブエージェントを立ち上げたとき — Claude Code も Codex も Grok も OpenCode もそうします — 子ごとにカードができ、終わってからまとめて出るのではなく、動いている間に中身が埋まっていきます。開けば子自身のセッションを読めます。 - -![ひとつの Codeg 会話からサブエージェントへタスクを委譲する様子](../images/collaboration-light.gif#gh-light-mode-only) -![ひとつの Codeg 会話からサブエージェントへタスクを委譲する様子](../images/collaboration-dark.gif#gh-dark-mode-only) - -## ✅ ToDo タスク - -すべての仕事に付き添う必要はありません。書き留めるだけ — タイトル、説明、どのエージェントで走らせるか — で、Codeg がそれに**コードの専用コピー**を渡します。プロジェクトの隣に作られる git worktree で、専用のブランチの上です。同時にいくつ走っても互いに触れず、あなたが作業中のツリーにも触れません。今夜に予約することも、フォルダーに同時実行数の上限までキューを自分で消化させることもできます。 - -終わったタスクが自分でマージすることはありません。レビュー列へ移って待ちます。diff を読み、もう一周やり直させ、あるいは受け入れる — すると取り込むのはエージェントで、まずベースブランチを自分の worktree に取り込み、そこでコンフリクトを解消します。そのあと Codeg はエージェントの言い分ではなく git を確かめます。確認できなかったマージは、成功と報告される代わりにレビューへ戻ります。 - -![ToDo タスクのボード。タスクが「ToDo」から「進行中」を経て「完了」へ進む](../images/task-light.png#gh-light-mode-only) -![ToDo タスクのボード。タスクが「ToDo」から「進行中」を経て「完了」へ進む](../images/task-dark.png#gh-dark-mode-only) - -## 🪟 画面分割 - -タブ列がひとつでは足りないときもあります。会話タブを右クリックすれば、ビューを**右**または**下**へ、何度でも分割できます — 左右に 2 つ、縦に 3 つ、あるいは格子状に。どのグループもそれ自体がひとつのワークスペースで、独自のタブ、独自のヘッダー、独自の新規会話ボタンを持ちます。片方のペインで Claude Code にリファクタリングさせ、隣のペインで Codex に diff をレビューさせる、という具合です。 - -タブをグループ間でドラッグしても、そのセッションは移動中もストリーミングを続けます。グループの境界をドラッグすれば、スペースの分け方が変わります。レイアウトはワークスペースごとに、下書きも含めて記憶されます — Codeg を開き直せば分割はそのまま戻り、送らなかった文字も入力欄に残っています。 - -![会話エリアをタブグループの格子に分割する](../images/split-light.gif#gh-light-mode-only) -![会話エリアをタブグループの格子に分割する](../images/split-dark.gif#gh-dark-mode-only) - -## 📄 Office ドキュメント - -スライドでも、レポートでも、表計算でも、頼めばエージェントは本物の `.pptx` / `.docx` / `.xlsx` を作ります — 右側のペインがそれをリアルタイムに描画しながら。編集は自動でプレビューへ反映され、スライドが埋まり、表が形になり、数値がセルに収まっていきます。4 枚目が気に入らない?次のメッセージでそう伝えるだけ — エージェントは同じファイルをその場で直し、プレビューが追いつきます。書き出しも、外部の Office アプリも、Codeg を離れる必要もありません。 - -![ライブプレビューを横に置いて Office ドキュメントを編集するエージェント](../images/office-light.png#gh-light-mode-only) -![ライブプレビューを横に置いて Office ドキュメントを編集するエージェント](../images/office-dark.png#gh-dark-mode-only) - -## 💻 ワークスペース - -ワークスペースはひとつ、エージェントはすべて。動かしているのが Claude Code でも Codex でも Cursor でも、同じエディタ、同じライブ diff、同じ Git クライアントの中で作業します。そして生まれるのはリポジトリの中の本物のファイル — 目の前で変わっていきます。別のディレクトリを取り込むこともできます — 共有ライブラリ、隣のサービス、ドキュメントのリポジトリ — ファイルツリーも検索もエージェント自身も、それらをひとつのワークスペースとして扱います。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +### すべてのエージェントを、ひとつのインターフェースで + +19 種のエージェントを内蔵し、ほかの ACP エージェントも公開レジストリまたはその distribution JSON から加えられます。Codeg はそのすべてと Agent Client Protocol で通信するので、どれも目を凝らして読むターミナルではなく、同じリッチな会話 — ツールカード、ライブ diff、計画、権限の確認 — として表示されます。エージェントで UI レンダリングを有効にすると、インタラクティブなカードや表、グラフで答えられるようになります。 -**セッション**:すでにある履歴をそのまま引き継げます。インストール済みのすべてのエージェントの過去セッションをワンクリックで取り込み、中断したところから再開できます。取り込んだ後は、もう互いに孤立したままではありません — 古いセッションを `@` で指名すれば、いま話しているエージェントがそれを読めます。別のエージェントが書いたものでも構いません。今日の Codex が、先週の Claude Code が終えたところから続けられます。セッションがどれだけ長くなっても、開くときはまず直近のラウンドを表示し、残りはさかのぼるにつれて読み込みます。 +[ドキュメント →](https://docs.codeg.app/guide/supported-agents) · [カスタムエージェント →](https://docs.codeg.app/guide/custom-agents) · [UI レンダリング →](https://docs.codeg.app/guide/skills#cards-tables-and-charts-in-replies) -**ファイル**:エージェントの編集は、着地するそばから会話の隣に diff として現れます。どのファイルもシンタックスハイライト付きの本物のエディタで開け、`⌘L` でファイルを — あるいは選択範囲だけを — そのままエージェントへ渡せます。Markdown、HTML、画像、Office ドキュメントも同じペインでプレビューできます。 + + + + すべてのエージェントを、ひとつのインターフェースで + +
+ +### すべてのセッションを、検索可能に + +Codeg は各エージェント CLI がディスクに残す履歴を読み取ります:ワンクリックでインポートし、すべてを検索し、どのセッションも止まったところから再開できます。古いセッションを `@` で指名すれば、いま話しているエージェントがそれを読めます — 別のエージェントが書いたものでも構いません。会話には色付きのタグを付けられます。全体共通にもフォルダー専用にもでき、サイドバーをタグで絞り込めます。 + +[ドキュメント →](https://docs.codeg.app/guide/aggregation) · [タグ →](https://docs.codeg.app/guide/workspace#tag-conversations) -**Git**:状態表示ではなく、完全なクライアントです。「変更」タブからそのままコミットでき — メッセージを書いて Enter — その隣に pull、fetch、push、stash が並び、履歴はどのコミットが push 済みかを示します。ブランチ、マージ、リベース、リセット、別ブランチとの差分に加えて、切り替えずに任意のブランチを更新・push できます。コンフリクトは三ペインのマージエディタで開き、ハンク単位で採用するか自分で書きます。そして worktree は並行作業をワンアクションに変えます — 新しいブランチ、専用のディレクトリ、そこに根を張った新しい会話。エージェントの一隊が互いのファイルに触れることなく、別々の機能を同時に作れます。 + + + + すべてのセッションを、検索可能に + +
+ +### マルチエージェント協調 + +`@` を打ち、エージェントを選び、送信するだけ。指名したエージェントはそれぞれ独立したセッションとして並走し、その出力があなたのスレッドへストリーミングで流れ込みます — Claude Code が下書きする間に Codex がレビューする、という具合に。サブエージェントは、動いている間に中身が埋まっていくカードとして現れます。 + +[ドキュメント →](https://docs.codeg.app/guide/multi-agent) -**うまくいかないとき**:失敗したターンは「何かが起きました」で終わりません。Claude Code と Codex では種類まで示します — 接続の問題、アクセスの問題、上限到達、リクエスト拒否、サービスの問題 — そして入力欄の下に、本当に役立つものだけを載せた帯が出ます。再試行、サインイン、あるいは新しいセッション。エージェントが自分で再試行している間は琥珀色で表示され、ターンが無事に終われば「復旧しました」の一行に収まります。入力欄の下の接続インジケーターもボタンです。押せばそのセッションの本当の状態が分かり、やり直しではなく再開する「再接続」もそこにあります。 + + + + マルチエージェント協調 + +
+ +### 無人で進む ToDo タスク + +仕事を書き留めたら、あとは席を外すだけ。ToDo タスクはそれぞれ専用の git ワークツリーとブランチを持ち、すぐに、または予約した時刻に始まり、そのあとあなたのレビューを待ちます。diff を受け入れるとエージェントが取り込み、Codeg は git を確かめてから完了とします。リポジトリパネルに任せれば、ラベルや作成者で選んだイシューとプルリクエストを、定期的に、または Webhook が届いたときに ToDo として追加してくれます。 + +[ドキュメント →](https://docs.codeg.app/guide/tasks) · [自動処理 →](https://docs.codeg.app/guide/repository#let-it-pick-items-up-by-itself) + + + + + 無人で進む ToDo タスク + +
+ +### 無限キャンバス + +作業を空間に広げましょう:会話、ファイル、ターミナル、メモがボード上のカードになり、フォルダーとエージェントごとにまとまるので、複数のエージェントが並んで動く様子をひと目で見渡せます。 + +[ドキュメント →](https://docs.codeg.app/guide/canvas) + + + + + 無限キャンバス + +
+ +### デスクトップ・サーバー・モバイル・チャット + +Codeg はデスクトップアプリとしても、任意のブラウザで開けるセルフホストのサーバーとしても、ひとつの Docker コンテナとしても動かせます。デスクトップアプリからは、リモートのサーバーを専用のワークスペースウィンドウで開くこともできます。ネイティブの iPhone・iPad・Android クライアント — さらに Telegram、Lark、WeChat のチャットチャンネル — でエージェントにいつでも手が届き、その間もファイルとセッションはあなたが管理するマシンにとどまります。 + +[ドキュメント →](https://docs.codeg.app/getting-started/deployment) · [リモートワークスペース →](https://docs.codeg.app/guide/workspace#desktop-and-browser) · [モバイルアプリ →](https://docs.codeg.app/getting-started/installation#mobile-apps) · [チャットチャンネル →](https://docs.codeg.app/guide/chat-channels) + + + + + デスクトップ・サーバー・モバイル・チャット + +
+ +### Office ドキュメントと科学研究 + +スライドでも、レポートでも、表計算でも、頼めば本物の `.pptx`、`.docx`、`.xlsx` が会話の隣でリアルタイムに描画されていく様子を見られます。PDF も専用のビューアーで開けます。同梱の研究スキル — 仮説生成、実験計画、統計、文献検索 — はどのエージェントでも使えます。 + +[ドキュメント →](https://docs.codeg.app/guide/office) · [科学研究 →](https://docs.codeg.app/guide/research) + + + + + Office ドキュメントと科学研究 + +
+ +### ブラウザとコンピューター操作 + +デスクトップアプリでは、リンクはファイルの隣の内蔵ブラウザで開き、タブレットやスマートフォンのサイズでも表示できます:ページ、要素、スクリーンショット、コンソールエラーをエージェントに渡すことも、共有したページをエージェントに操作させることもできます。プレビュー版の機能として、共有したウィンドウをエージェントが見て操作することもできます — 停止はいつでもワンクリックです。 + +[ドキュメント →](https://docs.codeg.app/guide/browser) · [コンピューター操作 →](https://docs.codeg.app/guide/computer-use) + + + + + ブラウザとコンピューター操作 + +
+ +### 開発の一連の流れをまるごと + +エディタ、ライブ diff と左右分割の diff、三ペインのマージエディタを備えた完全な Git クライアント、ワンクリックのワークツリー、内蔵ターミナル、画面分割 — そのすべてがエージェントの隣にあり、リポジトリの本物のファイルを扱います。 + +[ドキュメント →](https://docs.codeg.app/guide/workspace) · [Git とワークツリー →](https://docs.codeg.app/guide/git) + + + + + 開発の一連の流れをまるごと + +
-## 📱 iPhone・iPad・Android +**このほかにも:** + +- **[リポジトリパネル](https://docs.codeg.app/guide/repository)** — GitHub、GitLab、Gitea、Forgejo のイシュー、プルリクエスト、チェック、マージ。どのイシューや PR も ToDo タスクにできます +- **[オートメーション](https://docs.codeg.app/guide/automations)** — 設定済みの入力欄を保存し、cron スケジュールまたは任意のタイミングでヘッドレス実行 +- **[トークン使用量](https://docs.codeg.app/guide/token-usage)** — 推移、キャッシュヒット率、アクティビティのヒートマップ、フォルダー・エージェント・モデル・セッション別の使用量、API の定価で見積もったコスト +- **[分岐とステアリング](https://docs.codeg.app/guide/workspace#follow-along-%E2%80%94-the-conversation)** — 対応しているエージェントでは、完了した返信から会話を分岐させたり、まだ実行中のターンにメッセージを送り込んだりできます +- **[スキル](https://docs.codeg.app/guide/skills) と [MCP](https://docs.codeg.app/guide/mcp)** — エージェントごとのスキルパック、ローカルの MCP スキャン、レジストリの検索とインストール +- **[プロジェクトブート](https://docs.codeg.app/guide/project-boot)** — ライブプレビュー付きで新規プロジェクトを視覚的に構築 +- **[通知](https://docs.codeg.app/reference/settings/general#desktop-notifications)** — ターンが終わったときやエージェントに呼ばれたときに、デスクトップ通知と通知音、タスクバーボタンの点滅や Dock アイコンのバウンドで知らせます +- **[自分好みに](https://docs.codeg.app/reference/settings/appearance)** — カラートークン単位で塗り替えられる 12 のテーマ、壁紙、角丸、チャット幅、カスタム CSS、デスクトップペット — インターフェースは 10 言語に対応 +- **[バックアップと同期](https://docs.codeg.app/reference/settings/system#backup-restore)** — 暗号化バックアップと、ファイルまたは自分の WebDAV サーバーを介したマシン間の設定同期 +- **[URL スキーム](../../docs/url-scheme.md)** — `codeg://session/` で別のアプリから会話を開けます(デスクトップ) +- **[コマンドライン](../../docs/cli.md)** — `codeg-cli` でスクリプトや CI ジョブから、起動中の Codeg(デスクトップまたはサーバー)にプロンプトを実行させ、返答や JSON イベントを出力します +- **まだまだあります** — ほぼすべてのリリースで何かが加わります。全リストは [リリースノート](https://github.com/spacering-net/codeg/releases) で確認できます -デスクを離れても、作業は止まりません。ネイティブの iOS / Android クライアントは、あなたがすでに動かしている Codeg —— デスクトップアプリの **Web サービス**、あるいは自分で立てた `codeg-server` —— に接続します。そこからセッションを開始し、返信やツール呼び出しが流れ込むのを追い、権限の確認に答え、プロジェクトやブランチを見て回れます。端末側には何も移りません。ファイルもエージェント CLI も会話も Codeg を実行しているマシンに残り、アクセストークンは iOS Keychain または Android Keystore が預かります。どちらのクライアントもオープンソース([iOS](https://github.com/xintaofei/codeg-ios)、[Android](https://github.com/xintaofei/codeg-android))です。接続はわずか 3 ステップ、詳しくは [モバイルアプリ](https://docs.codeg.app/getting-started/installation#mobile-apps)。 +## 🤖 対応エージェント -| iPhone・iPad | Android | -| :---: | :---: | -| Codeg iOS クライアントでセッションを開始する画面 | Codeg Android クライアントに流れ込むエージェントの返信 | +Codeg はすべてのエージェントと [Agent Client Protocol](https://agentclientprotocol.com) で通信するため、どのエージェントにも同じ構造化されたインターフェースが用意されます。19 種を内蔵し、その多くは Codeg がインストール・バージョン固定・更新まで面倒を見ます: -## ✨ ハイライト +

+ Claude Code   + Codex   + Gemini CLI   + OpenClaw   + OpenCode   + Cline   + Hermes Agent   + CodeBuddy   + Kimi Code   + Pi   + Grok   + Cursor   + DeepSeek Harness   + Qoder   + Google Antigravity   + Kiro CLI   + ZCode   + TRAE CLI   + Command Code   + + 任意の ACP エージェント +

-- **[会話の集約](https://docs.codeg.app/guide/aggregation)** — 対応するすべてのエージェントのセッションを統一された検索可能なワークスペースへ取り込み、中断した続きから再開できます -- **[マルチエージェント協調](https://docs.codeg.app/guide/multi-agent)** — `@` でエージェントを指名するだけで委譲。異なる種類のサブエージェントがそれぞれ独立したセッションとして、ひとつのタスク内で並行して動きます -- **[ToDo タスク](https://docs.codeg.app/guide/tasks)** — やるべきことを書き留めればエージェントがキューを片づけていきます。各タスクは専用の worktree で走り、あなたがレビューして初めてブランチに取り込まれます -- **[カスタムエージェント](https://docs.codeg.app/guide/custom-agents)** — 公開レジストリまたは distribution JSON から、ACP 互換の任意のエージェントを登録。Codeg がインストールと履歴の記録を引き受け、内蔵エージェントと同じように扱います -- **[ワークスペース](https://docs.codeg.app/guide/workspace)** — エージェントの隣に開発の一連の流れがすべて揃います:ファイルツリー、エディタと diff、Git の変更、コミット、内蔵ターミナル、そして[ひとつのワークスペースにまとめた複数のフォルダー](https://docs.codeg.app/guide/workspace#work-across-several-folders) -- **[画面分割](https://docs.codeg.app/guide/workspace#split-the-conversation-view-into-groups)** — 会話エリアを好きな数のタブグループに分割し、タブや境界をドラッグして組み替え。再起動後もレイアウトは下書きごと復元します -- **[Git と Worktree](https://docs.codeg.app/guide/git)** — 変更のレビューとコミット、Git リモートアカウントの管理、内蔵の `git worktree` フローによる並行開発 -- **[トークン使用量](https://docs.codeg.app/guide/token-usage)** — ステータスバーのカウンターの裏には完全なレポート:推移とキャッシュヒット率、アクティビティのヒートマップ、フォルダー・エージェント・モデル・セッション別の内訳 -- **[チャットチャンネル](https://docs.codeg.app/guide/chat-channels)** — Telegram、Lark(飛書)、WeChat からエージェントを操作:タスク作成、権限の承認、進捗のリアルタイム受信 -- **[オートメーション](https://docs.codeg.app/guide/automations)** — 設定済みの入力欄を再利用可能なオートメーションとして保存し、cron スケジュールまたは任意のタイミングでヘッドレス実行。セッションを開始することも、後であなたがレビューする ToDo タスクを積むこともできます -- **[Office ドキュメント](https://docs.codeg.app/guide/office)** — 同梱の `officecli` で `.docx` / `.xlsx` / `.pptx` を作成・分析・校正・編集し、タブ内でライブプレビュー -- **[科学研究](https://docs.codeg.app/guide/research)** — 同梱の研究スキル(仮説生成、実験計画、統計、可視化、批判的吟味、文献検索)をどのエージェントからも呼び出せます -- **[プロジェクトブート](https://docs.codeg.app/guide/project-boot)** — ライブプレビュー付きで新規プロジェクトを視覚的に構築し、そのままワークスペースで開きます -- **[MCP](https://docs.codeg.app/guide/mcp) & [スキル](https://docs.codeg.app/guide/skills)** — ローカルスキャンとレジストリ検索/インストール、スキルはグローバル/プロジェクト単位で管理 -- **[自分の見た目に](https://docs.codeg.app/reference/settings/appearance)** — 12 のテーマをカラートークン単位で塗り替え、角丸をアプリ全体で設定し、テーマを shadcn JSON で読み書きし、必要なら自分で CSS を書けます -- **[デスクトップ・サーバー・Docker](https://docs.codeg.app/getting-started/deployment)** — ネイティブなデスクトップアプリ、ブラウザから使えるスタンドアロンの `codeg-server`、あるいは `docker compose up` -- **[iPhone・iPad・Android](https://docs.codeg.app/getting-started/installation#mobile-apps)** — デスクトップやサーバーに接続するネイティブモバイルクライアント:どこからでもセッションを開始し、返信をストリーミングで受け取り、権限を承認し、プロジェクトを閲覧 +リストにない?公開されている ACP レジストリから好きなエージェントを選ぶか、その distribution JSON を貼り付ければ、Codeg がインストールし、起動できるかを確かめ、内蔵エージェントと同じように扱います。各エージェントの実行環境要件とセッションの保存場所は [対応エージェント](https://docs.codeg.app/guide/supported-agents) を参照してください。 -## 📦 インストールと実行 +## 📦 インストール -**デスクトップ** — macOS・Windows・Linux 向けインストーラーを [Releases](https://github.com/xintaofei/codeg/releases) から入手し、[インストール](https://docs.codeg.app/getting-started/installation) の手順に従ってください。 +**デスクトップ** — macOS・Windows・Linux 向けインストーラーは [Releases](https://github.com/spacering-net/codeg/releases/latest) にあります。セットアップ手順は [インストール](https://docs.codeg.app/getting-started/installation) を参照してください。 **サーバー** — Codeg をヘッドレスで動かし、任意のブラウザから利用します。Linux / macOS の場合: ```bash -curl -fsSL https://raw.githubusercontent.com/xintaofei/codeg/main/install.sh | bash +curl -fsSL https://raw.githubusercontent.com/spacering-net/codeg/main/install.sh | bash CODEG_STATIC_DIR=/usr/local/share/codeg/web codeg-server ``` Windows(PowerShell)の場合: ```powershell -irm https://raw.githubusercontent.com/xintaofei/codeg/main/install.ps1 | iex -$env:CODEG_STATIC_DIR="$env:LOCALAPPDATA\codeg\web"; codeg-server +irm https://raw.githubusercontent.com/spacering-net/codeg/main/install.ps1 | iex +$env:CODEG_STATIC_DIR="$env:LOCALAPPDATA\codeg-server\web"; codeg-server ``` **Docker** — 同じサーバーを、ひとつのコンテナで: ```bash -docker run -d -p 3080:3080 -v codeg-data:/data ghcr.io/xintaofei/codeg:latest +docker run -d -p 3080:3080 -v codeg-data:/data ghcr.io/spacering-net/codeg:latest ``` -**モバイル** — [iOS アプリ](https://apps.apple.com/app/codeg-client/id6785199071) または [Android APK](https://github.com/xintaofei/codeg-android/releases/latest) をインストールし、デスクトップアプリの **Web サービス**か自分の `codeg-server` を指定するだけ:アドレスとトークンを入れれば完了です。接続手順は [モバイルアプリ](https://docs.codeg.app/getting-started/installation#mobile-apps)。 +どちらの場合も、ブラウザで `http://:3080` を開き、サーバーが起動時に出力するアクセストークンを入力します(コンテナでは `docker logs` で確認できます)。`CODEG_TOKEN` で自分で決めることもできます。 + +**モバイル** — [iOS アプリ](https://apps.apple.com/app/codeg-client/id6785199071) または [Android APK](https://github.com/xintaofei/codeg-android/releases/latest) をインストールし、デスクトップアプリの **Webサービス**か自分の `codeg-server` を指定するだけ:アドレスとトークンを入れれば完了です。接続手順は [モバイルアプリ](https://docs.codeg.app/getting-started/installation#mobile-apps)。 + +Compose、ビルド済みバイナリ、ソースからのビルド、その場での更新は [デプロイ](https://docs.codeg.app/getting-started/deployment) に、環境変数は [設定](https://docs.codeg.app/getting-started/configuration) にあります。 + +## 👥 コミュニティとサポート -Compose、ビルド済みバイナリ、ソースからのビルド、その場での更新は [デプロイ](https://docs.codeg.app/getting-started/deployment) に、環境変数は [設定](https://docs.codeg.app/getting-started/configuration) にあります。Codeg 自体のビルドは [開発](https://docs.codeg.app/reference/development) と [アーキテクチャ](https://docs.codeg.app/reference/architecture) を参照。 +- **WeChat** — QRコードをスキャンして、ディスカッション、フィードバック、アップデートのためのグループに参加してください: -## 🔒 プライバシーとセキュリティ + + + WeChat + -- 解析・保存・プロジェクト操作はデフォルトでローカル優先 — ネットワークアクセスはユーザーが起点となった操作でのみ発生します -- Web モードとサーバーモードはトークンベースの認証で保護されます -- 企業環境向けにシステムプロキシに対応 +- **イシュー** — バグを見つけた?欲しい機能がない?[イシューを作成してください](https://github.com/spacering-net/codeg/issues)。 +- **プライバシー** — ローカル優先:解析・保存・プロジェクト操作はあなたのマシン上にとどまり、Web モードとサーバーモードはトークン認証で保護されます。詳細は [プライバシーとセキュリティ](https://docs.codeg.app/reference/privacy) を参照してください。 +- **LinuxDO** — [LinuxDO](https://linux.do) コミュニティのサポートに感謝します。 +- **応援する** — [リポジトリにスターを付けて](https://github.com/spacering-net/codeg)、今後の進展をフォローしてください。 -詳細は [プライバシーとセキュリティ](https://docs.codeg.app/reference/privacy) を参照してください。 +## 🤝 コントリビューション -## 👥 コミュニティ +イシューもプルリクエストも歓迎します。Codeg を自分でビルドするなら、まず [開発](https://docs.codeg.app/reference/development) と [アーキテクチャ](https://docs.codeg.app/reference/architecture) から読んでください。 -- QRコードをスキャンして、ディスカッション、フィードバック、アップデートのための WeChat グループに参加してください + + Codeg のコントリビューター + -WeChat -WeChat +## ⭐ スター履歴 -- [LinuxDO](https://linux.do) コミュニティのサポートに感謝します + + + + + Star History Chart + + ## 🙏 謝辞 @@ -221,6 +363,8 @@ Compose、ビルド済みバイナリ、ソースからのビルド、その場 - [Superpowers](https://github.com/obra/superpowers) — Codeg のエキスパートスキルモジュールを支えるプロジェクト - [OfficeCLI](https://github.com/iOfficeAI/OfficeCLI) — Codeg の Office ドキュメントワークフローを支えるプロジェクト - [scientific-agent-skills](https://github.com/K-Dense-AI/scientific-agent-skills) — Codeg の科学研究スキルを支えるプロジェクト(MIT ライセンスのサブセット) +- [json-render](https://github.com/vercel-labs/json-render) — Codeg の UI レンダリング(カード・表・グラフ)を支えるプロジェクト +- [cua-driver](https://github.com/trycua/cua) — Codeg のコンピューター操作を支えるプロジェクト ## 📜 ライセンス diff --git a/docs/readme/README.ko.md b/docs/readme/README.ko.md index f96a1df537..071e041a0c 100644 --- a/docs/readme/README.ko.md +++ b/docs/readme/README.ko.md @@ -1,32 +1,44 @@ -# Codeg - -[![Release](https://img.shields.io/github/v/release/xintaofei/codeg)](https://github.com/xintaofei/codeg/releases) -[![Docs](https://img.shields.io/badge/docs-docs.codeg.app-3451b2)](https://docs.codeg.app) -[![License](https://img.shields.io/github/license/xintaofei/codeg)](../../LICENSE) - -

- English | - 简体中文 | - 繁體中文 | - 日本語 | - 한국어 | - Español | - Deutsch | - Français | - Português | - العربية +

+ Codeg logo Codeg +

+ +

+ GitHub stars + Latest release + Total downloads + License + Documentation + Platforms: macOS, Windows, Linux, Docker, iOS, Android

-Codeg(Code Generation)는 멀티 에이전트 코딩 워크스페이스입니다. 모든 AI 코딩 에이전트를 한곳에서 실행하고, 서로 협업하게 만듭니다. +

+ English · 简体中文 · 繁體中文 · 日本語 · 한국어 · Español · Deutsch · Français · Português · العربية +

-지원되는 모든 에이전트 CLI의 세션을 검색 가능한 하나의 워크스페이스로 모으고, 하나의 작업 안에서 메인 에이전트가 다른 종류의 서브 에이전트에게 위임할 수 있습니다. 지켜보고 앉아 있기 아까운 일은 할 일 보드에 적어 두세요. 각 작업이 자기 브랜치에서 무인으로 돌아가고, 반영되기 전에 당신의 검토를 기다립니다. Codeg는 데스크톱 앱·독립 서버·Docker 컨테이너 어느 형태로든 실행되고, 네이티브 iOS·Android 클라이언트가 있어 자리를 비운 사이에도 작업을 이어갈 수 있습니다. 열다섯 개의 에이전트가 기본 내장되며, ACP를 지원하는 다른 에이전트를 직접 등록할 수도 있습니다. +

+ 멀티 에이전트 코딩 워크스페이스.
+ 모든 AI 코딩 에이전트를 한곳에서 실행하고, 서로 협업하게 만듭니다. +

-![워크스페이스](../images/workspace-light.png#gh-light-mode-only) -![워크스페이스](../images/workspace-dark.png#gh-dark-mode-only) +

Codeg 다운로드 · 문서

-## 📖 문서 +

+ + + Codeg 워크스페이스: 에이전트와의 대화 옆에 해당 에이전트의 실시간 diff와 프로젝트 파일이 놓인 모습 + +

-**전체 문서는 [docs.codeg.app](https://docs.codeg.app)** — [시작하기](https://docs.codeg.app/getting-started/) · [가이드](https://docs.codeg.app/guide/) · [레퍼런스](https://docs.codeg.app/reference/) + + + + + + + + + +
🧩 모든 에이전트를 하나의 인터페이스로
열아홉 개의 에이전트가 기본 내장되어 있고, ACP 에이전트라면 무엇이든 합류할 수 있습니다 — 모두 터미널이 아닌, 같은 구조화된 대화로 표시됩니다.
🔎 에이전트를 넘나드는 세션
에이전트마다 디스크에 남겨 두는 기록을 가져와 검색하고 이어서 진행한 다음, 다른 에이전트에게 넘겨주세요.
🤝 함께 일하는 에이전트
@ 하나로 에이전트 간에 작업을 위임하거나, 각자의 워크트리에서 무인으로 실행되는 할 일을 대기열에 넣으세요.
🌍 어디서 일하든
데스크톱 앱, 자체 호스팅 서버나 Docker, iPhone, iPad, Android에서 — 그리고 Telegram, Lark 또는 WeChat에서도.
## 💖 스폰서 @@ -45,13 +57,6 @@ Codeg(Code Generation)는 멀티 에이전트 코딩 워크스페이스입니다 본 프로젝트를 후원해 주신 合租巴士에 감사드립니다! 合租巴士는 Codex, Claude Code 등 주요 모델에 대한 높은 안정성의 중계 기능을 제공하는 신뢰할 수 있고 효율적인 AI 중계 서비스 플랫폼입니다. 충전 비율이 투명하며(1:1), Codex 요율 보조는 최저 0.08까지 제공됩니다. 공식 웹사이트에서 그룹에 참여하면 $5 체험 크레딧을 받을 수 있습니다. - - - LQ router
- LQ router - - 본 프로젝트를 후원해 주신 LQ router 중계 서비스에 감사드립니다! LQ router는 전문 엔터프라이즈급 AI 중계 서비스로, 기업과 개인 개발자에게 안정적이고 효율적이며 저렴한 AI 모델 API 연동 서비스를 제공합니다. GPT, Claude, Grok, Gemini 등 주요 모델을 지원하며 GPT Pro 과금 배율은 최저 0.1배입니다. 공식 웹사이트에서 그룹에 참여하면 1달러 체험 크레딧을 받을 수 있습니다. - APIMart
@@ -72,10 +77,10 @@ Codeg(Code Generation)는 멀티 에이전트 코딩 워크스페이스입니다 - Fluxion AI
- Fluxion AI + Sidrune AI
+ Sidrune AI - 본 프로젝트를 후원해 주신 Fluxion AI에 감사드립니다! Fluxion AI는 하나의 통합 API를 통해 GPT, Claude, Gemini를 비롯한 주요 AI 모델에 빠르고 안정적이며 비용 효율적으로 접근할 수 있게 해 줍니다. 신규 사용자는 전용 링크를 통해 $3의 API 크레딧을 받을 수 있습니다. + 본 프로젝트를 후원해 주신 Sidrune AI에 감사드립니다! Sidrune AI는 하나의 API로 GPT, Claude 등 주요 AI 모델에 접근할 수 있게 해 줍니다. 신규 사용자는 전용 링크에서 프로모션 코드 SDRCODEG로 가입하면 $3의 API 크레딧을 받을 수 있습니다. @@ -88,132 +93,269 @@ Codeg(Code Generation)는 멀티 에이전트 코딩 워크스페이스입니다 > Codeg의 스폰서가 되고 싶으신가요? [이메일로 문의해 주세요.](mailto:itpkcn@gmail.com) -## 🤖 지원 에이전트 - -Claude Code · Codex · Gemini · OpenClaw · OpenCode · Cline · Hermes · CodeBuddy · Kimi Code · Pi · Grok · Cursor · DeepSeek Harness · Qoder · Google Antigravity - -이 중 대부분은 Codeg가 대신 설치하고, 버전을 고정하고, 업데이트합니다. 전체 목록과 각 에이전트의 실행 환경 요구 사항, 세션이 디스크에 저장되는 위치는 [지원 에이전트](https://docs.codeg.app/guide/supported-agents)를 참고하세요. - -목록에 없나요? 직접 추가하면 됩니다. 공개된 ACP 레지스트리에서 하나를 고르거나 distribution JSON을 붙여넣으면, Codeg가 설치하고 실행 가능한지 미리 확인한 뒤 내장 에이전트와 똑같이 취급합니다 — 선택기에 나타나고, `@` 위임과 스킬을 받아들이며, 그 에이전트가 자체 기록을 남기지 않아도 대화는 저장되고 검색됩니다. → [커스텀 에이전트](https://docs.codeg.app/guide/custom-agents) - -## 🤝 멀티 에이전트 협업 - -멀티 에이전트 협업이 키 하나로 끝납니다. `@`를 입력하고, 에이전트를 고르고, 보내기만 하면 됩니다. 나머지 스케줄링은 Codeg가 맡습니다 — 언급된 에이전트를 각각 독립 세션으로 실행하고, 작업을 넘기고, 그 결과를 지금 보고 있는 스레드로 다시 흘려보냅니다. 둘을 언급하면 나란히 진행됩니다. Claude Code가 초안을 쓰는 동안 Codex가 검토하는 식으로요. 컨텍스트 전환도, 터미널 사이를 오가는 복사·붙여넣기도 없습니다. +## ✨ 주요 기능 -에이전트가 자체 서브 에이전트를 띄우는 경우 — Claude Code, Codex, Grok, OpenCode 모두 그렇습니다 — 자식마다 카드가 생기고, 끝난 뒤 한꺼번에 나타나는 대신 일하는 동안 내용이 채워집니다. 열어 보면 그 자식의 세션을 그대로 읽을 수 있습니다. - -![하나의 Codeg 대화에서 서브 에이전트에게 작업을 위임하는 모습](../images/collaboration-light.gif#gh-light-mode-only) -![하나의 Codeg 대화에서 서브 에이전트에게 작업을 위임하는 모습](../images/collaboration-dark.gif#gh-dark-mode-only) - -## ✅ 할 일 - -모든 일을 곁에서 지켜볼 필요는 없습니다. 적어 두기만 하면 — 제목, 설명, 어떤 에이전트로 돌릴지 — Codeg가 그 일에 **코드 사본 하나**를 통째로 내줍니다. 프로젝트 옆에 만들어지는 git 워크트리이고, 자기 브랜치 위에서 돕니다. 여러 개가 동시에 돌아도 서로 건드리지 않고, 지금 작업 중인 트리도 건드리지 않습니다. 오늘 밤으로 예약해 두거나, 폴더가 정해 둔 동시 실행 한도만큼 알아서 큐를 처리하게 둘 수도 있습니다. - -끝난 작업이 스스로 머지하지는 않습니다. 검토 칸으로 옮겨 가 기다립니다. diff를 읽고, 한 번 더 하라고 돌려보내고, 아니면 받아들이면 — 반영은 에이전트가 합니다. 먼저 기준 브랜치를 자기 워크트리로 가져와 거기서 충돌을 모두 풀고 나서요. 그다음 Codeg는 에이전트의 말이 아니라 git을 직접 확인합니다. 확인되지 않은 머지는 성공이라고 알리는 대신 검토로 되돌아갑니다. - -![할 일 보드에서 작업이 '할 일'과 '진행 중'을 거쳐 '완료'로 옮겨 가는 모습](../images/task-light.png#gh-light-mode-only) -![할 일 보드에서 작업이 '할 일'과 '진행 중'을 거쳐 '완료'로 옮겨 가는 모습](../images/task-dark.png#gh-dark-mode-only) - -## 🪟 화면 분할 - -탭 한 줄로는 부족할 때가 있습니다. 대화 탭을 오른쪽 클릭하면 뷰를 **오른쪽**이나 **아래쪽**으로, 원하는 만큼 몇 번이든 분할할 수 있습니다. 좌우 두 칸, 위아래 세 칸, 아니면 격자 전체로도요. 각 그룹은 그 자체로 하나의 워크스페이스입니다 — 자기 탭, 자기 헤더, 자기 새 대화 버튼을 가집니다. 그래서 한 칸에서는 Claude Code가 리팩터링하고, 옆 칸에서는 Codex가 diff를 검토할 수 있습니다. - -탭을 다른 그룹으로 끌어다 놓아도 그 세션은 이동 중에도 계속 스트리밍됩니다. 두 그룹 사이의 구분선을 끌면 공간을 나누는 비율이 바뀝니다. 레이아웃은 워크스페이스별로, 초안까지 함께 기억됩니다. Codeg를 다시 열면 분할이 그대로 돌아오고, 보내지 않은 글도 입력창에 남아 있습니다. - -![대화 영역을 탭 그룹 격자로 분할하기](../images/split-light.gif#gh-light-mode-only) -![대화 영역을 탭 그룹 격자로 분할하기](../images/split-dark.gif#gh-dark-mode-only) - -## 📄 Office 문서 - -덱이든 보고서든 워크북이든, 요청하면 에이전트가 진짜 `.pptx` / `.docx` / `.xlsx` 파일을 만듭니다 — 오른쪽 패널이 그것을 실시간으로 렌더링하는 동안에요. 수정은 알아서 미리보기에 반영됩니다. 슬라이드가 채워지고, 표가 자리를 잡고, 숫자가 셀에 들어갑니다. 4번 슬라이드가 마음에 들지 않나요? 다음 메시지로 말하면 됩니다 — 에이전트가 같은 파일을 그 자리에서 고치고, 미리보기가 따라옵니다. 내보내기도, 외부 Office 앱도, Codeg를 벗어날 일도 없습니다. - -![라이브 미리보기를 옆에 두고 Office 문서를 편집하는 에이전트](../images/office-light.png#gh-light-mode-only) -![라이브 미리보기를 옆에 두고 Office 문서를 편집하는 에이전트](../images/office-dark.png#gh-dark-mode-only) - -## 💻 워크스페이스 - -워크스페이스는 하나, 에이전트는 전부. 무엇이 일하고 있든 — Claude Code든 Codex든 Cursor든 — 같은 에디터, 같은 실시간 diff, 같은 Git 클라이언트 안에서 움직입니다. 그리고 만들어지는 것은 저장소 안의 진짜 파일이며, 보는 앞에서 바뀝니다. 다른 디렉터리를 끌어와 붙일 수도 있습니다 — 공용 라이브러리, 옆에 있는 서비스, 문서 저장소 — 파일 트리도 검색도 에이전트 자신도 그것들을 하나의 워크스페이스로 다룹니다. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +### 모든 에이전트를 하나의 인터페이스로 + +열아홉 개의 에이전트가 기본 내장되어 있고, 그 밖의 ACP 에이전트도 공개 레지스트리나 자체 distribution JSON으로 합류할 수 있습니다. Codeg는 이들 모두와 Agent Client Protocol로 통신하므로, 눈을 가늘게 뜨고 들여다봐야 하는 터미널 대신 모두 같은 풍부한 대화 화면을 갖게 됩니다 — 도구 카드, 실시간 diff, 계획, 권한 요청까지. 에이전트에 UI 렌더링을 켜면 대화형 카드, 표, 차트로도 답할 수 있습니다. -**세션.** 이미 가진 기록을 그대로 가져오세요. 설치된 모든 에이전트의 지난 세션을 클릭 한 번으로 불러오고, 멈춘 지점부터 이어갑니다. 들어온 뒤로는 서로 단절된 섬이 아닙니다 — 예전 세션을 `@`로 언급하면 지금 대화 중인 에이전트가 그것을 읽습니다. 다른 에이전트가 남긴 것이어도 마찬가지라, 오늘의 Codex가 지난주 Claude Code가 끝낸 지점에서 이어갑니다. 대화가 아무리 길어져도 열 때는 최근 라운드부터 보여주고, 나머지는 위로 거슬러 올라가는 대로 이어서 불러옵니다. +[문서 →](https://docs.codeg.app/guide/supported-agents) · [커스텀 에이전트 →](https://docs.codeg.app/guide/custom-agents) · [UI 렌더링 →](https://docs.codeg.app/guide/skills#cards-tables-and-charts-in-replies) -**파일.** 에이전트의 수정은 반영되는 즉시 대화 옆에 diff로 나타납니다. 어떤 파일이든 구문 강조가 되는 진짜 에디터에서 열고, `⌘L`로 파일 전체나 선택한 부분만 에이전트에게 바로 넘기고, Markdown·HTML·이미지·Office 문서를 같은 패널에서 미리 봅니다. + + + + 모든 에이전트를 하나의 인터페이스로 + +
+ +### 모든 세션을 검색할 수 있게 + +Codeg는 에이전트 CLI마다 디스크에 남겨 두는 기록을 읽습니다. 클릭 한 번으로 가져오고, 전부 검색하고, 어떤 세션이든 멈춘 지점부터 이어가세요. 예전 세션을 `@`로 언급하면 지금 대화 중인 에이전트가 그 세션을 읽을 수 있습니다 — 다른 에이전트가 남긴 세션이라도요. 대화에는 전체 공용이나 폴더 전용 색깔 태그를 붙일 수 있고, 사이드바를 태그로 걸러 볼 수 있습니다. + +[문서 →](https://docs.codeg.app/guide/aggregation) · [태그 →](https://docs.codeg.app/guide/workspace#tag-conversations) -**Git.** 상태 표시가 아니라 완전한 클라이언트입니다. 변경 사항 탭에서 바로 커밋하고 — 메시지를 쓰고 Enter — 그 옆에 pull, fetch, push, stash가 있으며, 히스토리는 어떤 커밋이 푸시됐는지 보여줍니다. 브랜치·머지·리베이스·리셋, 다른 브랜치와의 비교는 물론, 옮겨 가지 않고도 어떤 브랜치든 업데이트하거나 푸시할 수 있습니다. 충돌은 3분할 머지 에디터로 열려 헝크 단위로 받아들이거나 직접 고쳐 씁니다. 그리고 워크트리는 병렬 작업을 한 번의 동작으로 만듭니다 — 새 브랜치, 전용 디렉터리, 그리고 그 안에 뿌리내린 새 대화. 여러 에이전트가 서로의 파일을 건드리지 않고 서로 다른 기능을 동시에 만듭니다. + + + + 모든 세션을 검색할 수 있게 + +
+ +### 멀티 에이전트 협업 + +`@`를 입력하고, 에이전트를 고르고, 보내세요. 언급된 에이전트는 저마다 독립 세션으로 나란히 실행되고, 그 출력은 지금 보고 있는 스레드로 실시간으로 흘러듭니다. Claude Code가 초안을 쓰는 동안 Codex가 검토하는 식으로요. 서브 에이전트는 일하는 동안 내용이 채워지는 카드로 나타납니다. + +[문서 →](https://docs.codeg.app/guide/multi-agent) -**잘못됐을 때.** 실패한 턴은 그냥 문제가 생겼다고만 하지 않습니다. Claude Code와 Codex에서는 종류까지 말해 줍니다 — 연결 문제, 접근 문제, 한도 도달, 요청 거부, 서비스 문제 — 그리고 입력창 아래에 실제로 도움이 될 것만 담은 띠를 붙입니다. 다시 시도, 로그인, 또는 새 세션. 에이전트가 스스로 재시도하는 동안에는 호박색으로 표시되고, 턴이 무사히 끝나면 '복구됨' 한 줄로 정리됩니다. 입력창 아래 연결 상태 아이콘도 버튼입니다. 누르면 그 세션의 실제 상태가 나오고, 새로 시작하는 대신 이어받는 '다시 연결'도 거기 있습니다. + + + + 멀티 에이전트 협업 + +
+ +### 무인으로 실행되는 할 일 + +작업을 적어 두고 자리를 떠나세요. 할 일마다 전용 git 워크트리와 브랜치가 생기고, 지금 바로 또는 예약한 시간에 시작해 내 검토를 기다립니다. diff를 수락하면 에이전트가 반영하고, Codeg는 git을 확인한 뒤에야 완료로 처리합니다. 리포지토리 패널이 라벨과 작성자 기준으로 이슈와 풀 리퀘스트를 골라, 예약된 시간이나 웹훅이 올 때 할 일로 추가해 주기도 합니다. + +[문서 →](https://docs.codeg.app/guide/tasks) · [자동 처리 →](https://docs.codeg.app/guide/repository#let-it-pick-items-up-by-itself) + + + + + 무인으로 실행되는 할 일 + +
+ +### 무한 캔버스 + +작업을 공간 위에 펼쳐 놓으세요. 대화, 파일, 터미널, 메모가 보드 위의 카드가 되어 폴더와 에이전트별로 묶이므로, 여러 에이전트가 나란히 실행되는 모습을 한눈에 볼 수 있습니다. + +[문서 →](https://docs.codeg.app/guide/canvas) + + + + + 무한 캔버스 + +
+ +### 데스크톱·서버·모바일·채팅 + +Codeg를 데스크톱 앱으로, 어떤 브라우저에서든 여는 자체 호스팅 서버로, 또는 Docker 컨테이너 하나로 실행하세요. 데스크톱 앱에서는 원격 서버를 별도의 워크스페이스 창으로 열 수도 있습니다. 네이티브 iPhone, iPad, Android 클라이언트, 그리고 Telegram, Lark, WeChat 채널이 에이전트를 늘 손 닿는 곳에 두는 동안, 파일과 세션은 내가 관리하는 컴퓨터에 그대로 남습니다. + +[문서 →](https://docs.codeg.app/getting-started/deployment) · [원격 워크스페이스 →](https://docs.codeg.app/guide/workspace#desktop-and-browser) · [모바일 앱 →](https://docs.codeg.app/getting-started/installation#mobile-apps) · [채팅 채널 →](https://docs.codeg.app/guide/chat-channels) + + + + + 데스크톱·서버·모바일·채팅 + +
+ +### Office 문서와 과학 연구 + +덱, 보고서, 워크북을 요청하고 진짜 `.pptx`, `.docx`, `.xlsx` 파일이 대화 옆에서 실시간으로 렌더링되는 것을 지켜보세요. PDF는 전용 뷰어로 열립니다. 가설 생성, 실험 설계, 통계, 문헌 검색 같은 내장 연구 스킬은 어떤 에이전트와도 함께 작동합니다. + +[문서 →](https://docs.codeg.app/guide/office) · [과학 연구 →](https://docs.codeg.app/guide/research) + + + + + Office 문서와 과학 연구 + +
+ +### 브라우저와 컴퓨터 사용 + +데스크톱 앱에서는 링크가 파일 옆의 내장 브라우저에서 열리고, 태블릿이나 휴대폰 크기로도 볼 수 있습니다. 페이지, 요소, 스크린샷, 콘솔 오류를 에이전트에게 넘기거나, 공유한 페이지를 에이전트가 직접 조작하게 하세요. 미리 보기 단계의 기능으로, 공유한 창을 에이전트가 보고 조작하게 할 수도 있습니다 — 중지는 클릭 한 번이면 됩니다. + +[문서 →](https://docs.codeg.app/guide/browser) · [컴퓨터 사용 →](https://docs.codeg.app/guide/computer-use) + + + + + 브라우저와 컴퓨터 사용 + +
+ +### 엔지니어링의 전 과정 + +에디터, 실시간 diff와 나란히 보기 diff, 3분할 머지 에디터를 갖춘 완전한 git 클라이언트, 클릭 한 번으로 만드는 워크트리, 내장 터미널, 화면 분할 — 모두 에이전트 바로 옆에서, 저장소 안의 진짜 파일을 다룹니다. + +[문서 →](https://docs.codeg.app/guide/workspace) · [Git과 워크트리 →](https://docs.codeg.app/guide/git) + + + + + 엔지니어링의 전 과정 + +
-## 📱 iPhone, iPad & Android +**함께 들어 있는 기능:** + +- **[리포지토리 패널](https://docs.codeg.app/guide/repository)** — GitHub, GitLab, Gitea, Forgejo의 이슈, 풀 리퀘스트, 검사 항목, 병합을 다루고, 어떤 이슈나 PR이든 할 일로 만들 수 있습니다 +- **[자동화](https://docs.codeg.app/guide/automations)** — 설정을 마친 입력창을 저장해 cron 일정에 따라 또는 필요할 때 헤드리스로 실행합니다 +- **[토큰 사용량](https://docs.codeg.app/guide/token-usage)** — 추이, 캐시 적중률, 활동 히트맵, 폴더·에이전트·모델·세션별 사용량, 그리고 API 정가 기준 예상 비용 +- **[분기와 끼어들기](https://docs.codeg.app/guide/workspace#follow-along-%E2%80%94-the-conversation)** — 지원하는 에이전트에서는 완료된 답변에서 대화를 분기하거나, 아직 실행 중인 턴에 메시지를 끼워 넣을 수 있습니다 +- **[스킬](https://docs.codeg.app/guide/skills) & [MCP](https://docs.codeg.app/guide/mcp)** — 에이전트별 스킬 팩, 로컬 MCP 스캔, 레지스트리 검색과 설치 +- **[프로젝트 부트](https://docs.codeg.app/guide/project-boot)** — 실시간 미리보기와 함께 새 프로젝트의 뼈대를 시각적으로 만듭니다 +- **[알림](https://docs.codeg.app/reference/settings/general#desktop-notifications)** — 턴이 끝나거나 에이전트가 나를 필요로 할 때 데스크톱 알림과 알림음, 깜박이는 작업 표시줄 버튼, 튀어 오르는 Dock 아이콘으로 알려 줍니다 +- **[내 취향대로](https://docs.codeg.app/reference/settings/appearance)** — 토큰 단위로 색을 바꿀 수 있는 열두 가지 테마, 배경화면, 모서리 둥글기, 채팅 너비, 사용자 지정 CSS, 데스크톱 펫 — 열 가지 인터페이스 언어 중 어느 언어로든 +- **[백업과 동기화](https://docs.codeg.app/reference/settings/system#backup-restore)** — 암호화된 백업, 그리고 파일이나 직접 운영하는 WebDAV 서버를 통한 컴퓨터 간 설정 동기화 +- **[URL 스킴](../../docs/url-scheme.md)** — `codeg://session/`로 다른 앱에서 대화를 엽니다(데스크톱) +- **[명령줄](../../docs/cli.md)** — `codeg-cli`로 스크립트나 CI 작업에서 실행 중인 Codeg(데스크톱 또는 서버)에 프롬프트를 보내고, 응답이나 JSON 이벤트를 출력합니다 +- **그 밖에도** — 거의 모든 릴리스마다 새로운 것이 더해집니다. 전체 목록은 [릴리스 노트](https://github.com/spacering-net/codeg/releases)에 있습니다 -책상을 떠나도 작업은 멈추지 않습니다. 네이티브 iOS·Android 클라이언트는 이미 돌아가고 있는 당신의 Codeg —— 데스크톱 앱의 **웹 서비스**, 또는 직접 운영하는 `codeg-server` —— 에 연결됩니다. 거기서 세션을 시작하고, 응답과 도구 호출이 실시간으로 흘러드는 것을 지켜보고, 권한 요청에 답하고, 프로젝트와 브랜치를 둘러볼 수 있습니다. 휴대폰으로 옮겨지는 것은 없습니다. 파일과 에이전트 CLI, 대화는 Codeg가 도는 컴퓨터에 그대로 남고, 액세스 토큰은 iOS 키체인이나 Android 키스토어가 보관합니다. 두 클라이언트 모두 오픈 소스입니다([iOS](https://github.com/xintaofei/codeg-ios), [Android](https://github.com/xintaofei/codeg-android)). 연결은 세 단계면 끝나며, 자세한 내용은 [모바일 앱](https://docs.codeg.app/getting-started/installation#mobile-apps)에 있습니다. +## 🤖 지원 에이전트 -| iPhone & iPad | Android | -| :---: | :---: | -| Codeg iOS 클라이언트에서 세션을 시작하는 화면 | Codeg Android 클라이언트로 흘러드는 에이전트 응답 | +Codeg는 모든 에이전트와 [Agent Client Protocol](https://agentclientprotocol.com)로 통신하므로, 에이전트마다 같은 구조화된 인터페이스를 갖습니다. 열아홉 개가 기본 내장되어 있으며, 그중 대부분은 Codeg가 대신 설치하고, 버전을 고정하고, 업데이트합니다: -## ✨ 하이라이트 +

+ Claude Code   + Codex   + Gemini CLI   + OpenClaw   + OpenCode   + Cline   + Hermes Agent   + CodeBuddy   + Kimi Code   + Pi   + Grok   + Cursor   + DeepSeek Harness   + Qoder   + Google Antigravity   + Kiro CLI   + ZCode   + TRAE CLI   + Command Code   + + 모든 ACP 에이전트 +

-- **[대화 통합](https://docs.codeg.app/guide/aggregation)** — 지원되는 모든 에이전트의 세션을 검색 가능한 하나의 워크스페이스로 가져오고, 멈춘 지점부터 이어서 진행합니다 -- **[멀티 에이전트 협업](https://docs.codeg.app/guide/multi-agent)** — `@`로 에이전트를 언급하면 곧 위임입니다. 서로 다른 종류의 서브 에이전트가 각자 독립 세션으로, 하나의 작업 안에서 병렬로 실행됩니다 -- **[할 일](https://docs.codeg.app/guide/tasks)** — 해야 할 일을 적어 두면 에이전트가 큐를 하나씩 비워 갑니다. 각 작업은 자기 워크트리에서 돌고, 당신이 검토한 뒤에야 브랜치에 반영됩니다 -- **[커스텀 에이전트](https://docs.codeg.app/guide/custom-agents)** — 공개 레지스트리나 distribution JSON으로 ACP 호환 에이전트를 등록하세요. Codeg가 설치와 기록을 맡고, 내장 에이전트와 똑같이 다룹니다 -- **[워크스페이스](https://docs.codeg.app/guide/workspace)** — 에이전트 옆에 개발의 전 과정이 있습니다: 파일 트리, 에디터와 diff, Git 변경 사항, 커밋, 내장 터미널, 그리고 [하나의 워크스페이스로 묶은 여러 폴더](https://docs.codeg.app/guide/workspace#work-across-several-folders) -- **[화면 분할](https://docs.codeg.app/guide/workspace#split-the-conversation-view-into-groups)** — 대화 영역을 원하는 만큼 탭 그룹으로 나누고, 그룹 사이로 탭과 구분선을 끌어 조정하며, 재시작 후에도 초안까지 포함해 레이아웃이 돌아옵니다 -- **[Git과 Worktree](https://docs.codeg.app/guide/git)** — 변경 사항 검토와 커밋, Git 원격 계정 관리, 내장 `git worktree` 흐름을 이용한 병렬 작업 -- **[토큰 사용량](https://docs.codeg.app/guide/token-usage)** — 상태 표시줄 카운터 뒤의 전체 보고서: 추이와 캐시 적중률, 활동 히트맵, 폴더·에이전트·모델·세션별 분석 -- **[채팅 채널](https://docs.codeg.app/guide/chat-channels)** — Telegram, Lark(Feishu), WeChat에서 에이전트를 조작합니다: 작업 생성, 권한 승인, 실시간 진행 상황 수신 -- **[자동화](https://docs.codeg.app/guide/automations)** — 설정을 마친 입력창을 재사용 가능한 자동화로 저장해 cron 일정이나 필요할 때 헤드리스로 실행합니다. 세션을 시작할 수도, 나중에 검토할 할 일을 쌓아 둘 수도 있습니다 -- **[Office 문서](https://docs.codeg.app/guide/office)** — 내장 `officecli`로 `.docx` / `.xlsx` / `.pptx`를 만들고 분석·교정·편집하며, 탭 안에서 실시간 미리보기를 제공합니다 -- **[과학 연구](https://docs.codeg.app/guide/research)** — 내장 연구 스킬(가설 생성, 실험 설계, 통계, 시각화, 비판적 평가, 문헌 검색)을 어떤 에이전트에서든 호출할 수 있습니다 -- **[프로젝트 부트](https://docs.codeg.app/guide/project-boot)** — 실시간 미리보기와 함께 새 프로젝트를 시각적으로 구성하고, 곧바로 워크스페이스에서 엽니다 -- **[MCP](https://docs.codeg.app/guide/mcp) & [스킬](https://docs.codeg.app/guide/skills)** — 로컬 서버 스캔과 레지스트리 검색/설치, 스킬은 전역 또는 프로젝트 범위로 관리 -- **[내 취향대로](https://docs.codeg.app/reference/settings/appearance)** — 열두 가지 테마를 색상 토큰 단위로 바꾸고, 모서리 둥글기를 앱 전체에 적용하고, 테마를 shadcn JSON으로 가져오고 내보내거나, 직접 CSS를 씁니다 -- **[데스크톱·서버·Docker](https://docs.codeg.app/getting-started/deployment)** — 네이티브 데스크톱 앱, 브라우저로 접속하는 독립 실행형 `codeg-server`, 또는 `docker compose up` -- **[iPhone, iPad & Android](https://docs.codeg.app/getting-started/installation#mobile-apps)** — 데스크톱이나 서버에 연결되는 네이티브 모바일 클라이언트: 어디서나 세션을 시작하고, 응답을 스트리밍으로 받고, 권한을 승인하고, 프로젝트를 살펴봅니다 +목록에 없나요? 공개 ACP 레지스트리에서 아무 에이전트나 고르거나, 그 에이전트의 distribution JSON을 붙여넣으세요 — Codeg가 설치하고, 실행되는지 확인한 뒤, 내장 에이전트처럼 다룹니다. 각 에이전트의 실행 환경 요구 사항과 세션 보관 위치는 [지원 에이전트](https://docs.codeg.app/guide/supported-agents)를 참고하세요. -## 📦 설치 및 실행 +## 📦 설치 -**데스크톱** — [Releases](https://github.com/xintaofei/codeg/releases)에서 macOS, Windows, Linux용 설치 프로그램을 내려받은 뒤 [설치](https://docs.codeg.app/getting-started/installation) 안내를 따르세요. +**데스크톱** — [Releases](https://github.com/spacering-net/codeg/releases/latest)에서 macOS, Windows, Linux용 설치 프로그램을 내려받은 뒤 [설치](https://docs.codeg.app/getting-started/installation) 안내를 따르세요. **서버** — Codeg를 헤드리스로 실행하고 어떤 브라우저에서든 접속합니다. Linux 또는 macOS: ```bash -curl -fsSL https://raw.githubusercontent.com/xintaofei/codeg/main/install.sh | bash +curl -fsSL https://raw.githubusercontent.com/spacering-net/codeg/main/install.sh | bash CODEG_STATIC_DIR=/usr/local/share/codeg/web codeg-server ``` Windows(PowerShell): ```powershell -irm https://raw.githubusercontent.com/xintaofei/codeg/main/install.ps1 | iex -$env:CODEG_STATIC_DIR="$env:LOCALAPPDATA\codeg\web"; codeg-server +irm https://raw.githubusercontent.com/spacering-net/codeg/main/install.ps1 | iex +$env:CODEG_STATIC_DIR="$env:LOCALAPPDATA\codeg-server\web"; codeg-server ``` **Docker** — 같은 서버를, 컨테이너 하나로: ```bash -docker run -d -p 3080:3080 -v codeg-data:/data ghcr.io/xintaofei/codeg:latest +docker run -d -p 3080:3080 -v codeg-data:/data ghcr.io/spacering-net/codeg:latest ``` +어느 쪽이든 브라우저에서 `http://:3080`을 열고, 서버가 시작할 때 출력하는 액세스 토큰을 입력하세요(컨테이너는 `docker logs`로 확인합니다). `CODEG_TOKEN`으로 직접 정할 수도 있습니다. + **모바일** — [iOS 앱](https://apps.apple.com/app/codeg-client/id6785199071) 또는 [Android APK](https://github.com/xintaofei/codeg-android/releases/latest)를 설치한 뒤 데스크톱 앱의 **웹 서비스**나 직접 운영하는 `codeg-server`를 가리키게 하세요: 주소와 토큰만 넣으면 끝입니다. 연결 절차는 [모바일 앱](https://docs.codeg.app/getting-started/installation#mobile-apps) 참고. -Compose, 사전 빌드 바이너리, 소스 빌드, 무중단 업데이트는 [배포](https://docs.codeg.app/getting-started/deployment)에서, 환경 변수는 [설정](https://docs.codeg.app/getting-started/configuration)에서 다룹니다. Codeg 자체를 빌드하려면 [개발](https://docs.codeg.app/reference/development)과 [아키텍처](https://docs.codeg.app/reference/architecture)를 보세요. +Compose, 사전 빌드 바이너리, 소스 빌드, 제자리 업데이트는 [배포](https://docs.codeg.app/getting-started/deployment)에서, 환경 변수는 [설정](https://docs.codeg.app/getting-started/configuration)에서 다룹니다. + +## 👥 커뮤니티와 지원 + +- **WeChat** — QR 코드를 스캔하여 토론, 피드백, 업데이트를 위한 그룹에 참여하세요: -## 🔒 개인정보 보호 및 보안 + + + WeChat + -- 파싱·저장·프로젝트 작업은 기본적으로 로컬 우선 — 네트워크 접근은 사용자가 시작한 동작에서만 발생합니다 -- 웹 모드와 서버 모드는 토큰 기반 인증으로 보호됩니다 -- 기업 환경을 위한 시스템 프록시 지원 +- **이슈** — 버그를 찾았거나 원하는 기능이 없나요? [이슈를 열어 주세요](https://github.com/spacering-net/codeg/issues). +- **개인정보 보호** — 로컬 우선: 파싱, 저장, 프로젝트 작업은 내 컴퓨터 안에서 이루어지고, 웹 모드와 서버 모드는 토큰 기반 인증으로 보호됩니다. 자세한 내용은 [개인정보 보호 및 보안](https://docs.codeg.app/reference/privacy)을 참고하세요. +- **LinuxDO** — [LinuxDO](https://linux.do) 커뮤니티의 지원에 감사드립니다. +- **응원하기** — [저장소에 스타를 눌러](https://github.com/spacering-net/codeg) 진행 상황을 함께 지켜봐 주세요. -자세한 내용은 [개인정보 보호 및 보안](https://docs.codeg.app/reference/privacy)을 참고하세요. +## 🤝 기여하기 -## 👥 커뮤니티 +이슈와 풀 리퀘스트를 환영합니다. Codeg를 직접 빌드하려면 [개발](https://docs.codeg.app/reference/development)과 [아키텍처](https://docs.codeg.app/reference/architecture)부터 살펴보세요. -- 아래 QR 코드를 스캔하여 토론, 피드백, 업데이트를 위한 WeChat 그룹에 참여하세요 + + Codeg 기여자 + -WeChat -WeChat +## ⭐ 스타 히스토리 -- [LinuxDO](https://linux.do) 커뮤니티의 지원에 감사드립니다 + + + + + Star History Chart + + ## 🙏 감사의 말 @@ -221,6 +363,8 @@ Compose, 사전 빌드 바이너리, 소스 빌드, 무중단 업데이트는 [ - [Superpowers](https://github.com/obra/superpowers) — Codeg의 전문가 스킬 모듈을 지원하는 프로젝트 - [OfficeCLI](https://github.com/iOfficeAI/OfficeCLI) — Codeg의 Office 문서 워크플로우를 지원하는 프로젝트 - [scientific-agent-skills](https://github.com/K-Dense-AI/scientific-agent-skills) — Codeg의 과학 연구 스킬을 지원하는 프로젝트 (MIT 라이선스 서브셋) +- [json-render](https://github.com/vercel-labs/json-render) — Codeg의 UI 렌더링(카드, 표, 차트)을 지원하는 프로젝트 +- [cua-driver](https://github.com/trycua/cua) — Codeg의 컴퓨터 사용을 지원하는 프로젝트 ## 📜 라이선스 diff --git a/docs/readme/README.pt.md b/docs/readme/README.pt.md index d155d48763..2624327895 100644 --- a/docs/readme/README.pt.md +++ b/docs/readme/README.pt.md @@ -1,32 +1,44 @@ -# Codeg - -[![Release](https://img.shields.io/github/v/release/xintaofei/codeg)](https://github.com/xintaofei/codeg/releases) -[![Docs](https://img.shields.io/badge/docs-docs.codeg.app-3451b2)](https://docs.codeg.app) -[![License](https://img.shields.io/github/license/xintaofei/codeg)](../../LICENSE) - -

- English | - 简体中文 | - 繁體中文 | - 日本語 | - 한국어 | - Español | - Deutsch | - Français | - Português | - العربية +

+ Codeg logo Codeg +

+ +

+ GitHub stars + Latest release + Total downloads + License + Documentation + Platforms: macOS, Windows, Linux, Docker, iOS, Android

-O Codeg (Code Generation) é um espaço de trabalho de programação multiagente: rode todos os seus agentes de IA em um só lugar — e deixe que trabalhem juntos. +

+ English · 简体中文 · 繁體中文 · 日本語 · 한국어 · Español · Deutsch · Français · Português · العربية +

-Ele agrega as sessões de todas as CLIs de agentes suportadas em um único espaço de trabalho pesquisável e permite que um agente principal delegue a subagentes de outros tipos dentro de uma mesma tarefa. O trabalho que você prefere não acompanhar vai para o quadro de tarefas a fazer: cada tarefa no próprio branch, rodando sem supervisão, esperando a sua revisão antes de entrar. O Codeg roda como aplicativo de desktop, servidor independente ou contêiner Docker, com clientes nativos de iOS e Android para quando você está longe da mesa; quinze agentes já vêm integrados e você pode registrar por conta própria qualquer outro agente compatível com ACP. +

+ O espaço de trabalho de programação multiagente.
+ Rode todos os agentes de IA para programação em um só lugar — e deixe que trabalhem juntos. +

-![Espaço de trabalho](../images/workspace-light.png#gh-light-mode-only) -![Espaço de trabalho](../images/workspace-dark.png#gh-dark-mode-only) +

Baixar o Codeg · Documentação

-## 📖 Documentação +

+ + + O espaço de trabalho do Codeg: uma conversa com um agente ao lado dos diffs ao vivo que ele produz e dos arquivos do projeto + +

-**A documentação completa fica em [docs.codeg.app](https://docs.codeg.app)** — [Primeiros passos](https://docs.codeg.app/getting-started/) · [Guia](https://docs.codeg.app/guide/) · [Referência](https://docs.codeg.app/reference/) + + + + + + + + + +
🧩 Uma interface para todos os agentes
Dezenove agentes integrados, e qualquer agente compatível com ACP pode entrar — todos exibidos como a mesma conversa estruturada, e não como um terminal.
🔎 Sessões que viajam
Importe, pesquise e retome o histórico que cada agente guarda em disco e depois entregue-o a outro agente.
🤝 Agentes que trabalham juntos
Delegue entre agentes com um @ ou enfileire tarefas a fazer que rodam sem supervisão, cada uma na própria worktree.
🌍 Onde quer que você trabalhe
Aplicativo de desktop, servidor auto-hospedado ou Docker, iPhone, iPad e Android — e Telegram, Lark ou WeChat.
## 💖 Patrocinadores @@ -45,13 +57,6 @@ Ele agrega as sessões de todas as CLIs de agentes suportadas em um único espa Agradecemos ao 合租巴士 por patrocinar este projeto! O 合租巴士 é uma plataforma de retransmissão de IA confiável e eficiente, oferecendo retransmissão de alta estabilidade para modelos populares como Codex e Claude Code. A proporção de recarga é transparente (1:1), com subsídios de taxa do Codex a partir de apenas 0,08. Entre no grupo pelo site oficial para ganhar US$ 5 de crédito de teste. - - - LQ router
- LQ router - - Agradecemos ao serviço de retransmissão LQ router por patrocinar este projeto! O LQ router é um serviço profissional de retransmissão de IA de nível empresarial que oferece a empresas e desenvolvedores individuais acesso estável, eficiente e de baixo custo às APIs de modelos de IA. A plataforma é compatível com os principais modelos, incluindo GPT, Claude, Grok e Gemini, com multiplicadores de cobrança do GPT Pro a partir de apenas 0,1×. Entre no grupo pelo site oficial e receba US$ 1 de crédito de teste. - APIMart
@@ -72,10 +77,10 @@ Ele agrega as sessões de todas as CLIs de agentes suportadas em um único espa - Fluxion AI
- Fluxion AI + Sidrune AI
+ Sidrune AI - Agradecemos à Fluxion AI por patrocinar este projeto! A Fluxion AI oferece acesso de API rápido, confiável e econômico a GPT, Claude, Gemini e outros modelos de IA líderes por meio de uma única API unificada. Novos usuários podem receber US$ 3 em créditos de API através do nosso link exclusivo. + Agradecemos à Sidrune AI por patrocinar este projeto! A Sidrune AI oferece acesso a GPT, Claude e outros modelos de IA populares por meio de uma única API. Novos usuários que se cadastrarem pelo nosso link exclusivo com o código promocional SDRCODEG recebem US$ 3 em créditos de API. @@ -88,132 +93,269 @@ Ele agrega as sessões de todas as CLIs de agentes suportadas em um único espa > Quer se tornar patrocinador do Codeg? [Entre em contato por e-mail.](mailto:itpkcn@gmail.com) -## 🤖 Agentes suportados - -Claude Code · Codex · Gemini · OpenClaw · OpenCode · Cline · Hermes · CodeBuddy · Kimi Code · Pi · Grok · Cursor · DeepSeek Harness · Qoder · Google Antigravity - -O Codeg instala, fixa a versão e atualiza a maioria deles por você. Veja [Agentes suportados](https://docs.codeg.app/guide/supported-agents) para a lista completa, os requisitos de execução de cada um e onde ele guarda as sessões em disco. - -Não está na lista? Adicione você mesmo. Escolha qualquer agente no registro público do ACP ou cole o JSON de distribuição dele: o Codeg instala, verifica antes se ele consegue iniciar e o trata como um agente nativo — aparece no seletor, aceita delegação com `@` e skills, e suas conversas ficam registradas e pesquisáveis mesmo quando o agente não guarda histórico algum. → [Agentes personalizados](https://docs.codeg.app/guide/custom-agents) - -## 🤝 Colaboração multiagente - -Colaboração multiagente reduzida a uma única tecla: digite `@`, escolha um agente e envie. O Codeg cuida da orquestração — inicia cada agente mencionado como sua própria sessão, entrega a tarefa e devolve o trabalho para a conversa em que você já está. Mencione dois e eles seguem lado a lado: o Claude Code redigindo enquanto o Codex revisa. Sem troca de contexto, sem copiar e colar entre terminais. +## ✨ Recursos -E quando um agente dispara subagentes próprios — Claude Code, Codex, Grok e OpenCode fazem isso — cada filho ganha um cartão que vai se preenchendo enquanto trabalha, em vez de chegar todo de uma vez no fim. Abra um e leia a sessão do próprio filho. - -![Delegando uma tarefa a subagentes a partir de uma única conversa do Codeg](../images/collaboration-light.gif#gh-light-mode-only) -![Delegando uma tarefa a subagentes a partir de uma única conversa do Codeg](../images/collaboration-dark.gif#gh-dark-mode-only) - -## ✅ Tarefas a fazer - -Nem todo trabalho precisa de você olhando. Anote — um título, uma descrição, o agente que vai executá-lo — e o Codeg entrega a ele **uma cópia própria do código**: uma worktree do git ao lado do seu projeto, no próprio branch. Várias rodam ao mesmo tempo sem se tocarem, nem tocarem a árvore em que você está trabalhando. Agende uma para hoje à noite, ou deixe uma pasta esvaziar a fila sozinha, até o limite de execuções simultâneas que você definir. - -Uma tarefa concluída não faz merge sozinha. Ela vai para a coluna de revisão e espera: leia o diff, devolva para mais uma rodada ou aceite — e quem faz o merge é o agente, trazendo antes o seu branch base para a worktree dele e resolvendo os conflitos ali. Depois o Codeg não acredita na palavra do agente: confere o git por conta própria, e um merge que não consegue confirmar volta para revisão em vez de ser dado como certo. - -![O quadro de tarefas a fazer, com tarefas passando de A fazer para Em andamento e Concluído](../images/task-light.png#gh-light-mode-only) -![O quadro de tarefas a fazer, com tarefas passando de A fazer para Em andamento e Concluído](../images/task-dark.png#gh-dark-mode-only) - -## 🪟 Visualização dividida - -Uma única faixa de abas não basta sempre. Clique com o botão direito em uma aba de conversa para dividir a visualização **à direita** ou **para baixo**, quantas vezes quiser: dois painéis lado a lado, uma pilha de três, uma grade. Cada grupo é um espaço de trabalho completo — com suas abas, seu cabeçalho e seu próprio botão de nova conversa — então o Claude Code pode refatorar em um painel enquanto o Codex revisa um diff no painel ao lado. - -Arraste uma aba de um grupo para outro e a sessão continua transmitindo durante a mudança; arraste o divisor entre dois grupos para mudar como eles repartem o espaço. Seu layout é lembrado por espaço de trabalho, rascunhos incluídos: reabra o Codeg e a divisão volta, com o texto que você nunca enviou ainda na caixa. - -![Dividindo a área de conversa em uma grade de grupos de abas](../images/split-light.gif#gh-light-mode-only) -![Dividindo a área de conversa em uma grade de grupos de abas](../images/split-dark.gif#gh-dark-mode-only) - -## 📄 Documentos do Office - -Peça um deck, um relatório ou uma planilha e o agente constrói um `.pptx` / `.docx` / `.xlsx` de verdade — enquanto o painel à direita o renderiza ao vivo. Cada edição chega sozinha à pré-visualização: os slides se preenchem, as tabelas ganham forma, os números caem nas células. Não gostou do slide 4? Diga na mensagem seguinte — o agente edita o mesmo arquivo no lugar e a pré-visualização acompanha. Sem exportar, sem app do Office externo, sem sair do Codeg. - -![Um agente editando um documento do Office ao lado da pré-visualização ao vivo](../images/office-light.png#gh-light-mode-only) -![Um agente editando um documento do Office ao lado da pré-visualização ao vivo](../images/office-dark.png#gh-dark-mode-only) - -## 💻 Espaço de trabalho - -Um espaço de trabalho, todos os agentes. Seja qual for o que estiver trabalhando — Claude Code, Codex, Cursor —, ele trabalha no mesmo editor, com os mesmos diffs ao vivo e o mesmo cliente git; e o que produz são arquivos reais do seu repositório, mudando diante de você. Vincule outros diretórios — uma biblioteca compartilhada, um serviço vizinho, o repositório da documentação — e a árvore de arquivos, a busca e o próprio agente tratam todos como um só espaço de trabalho. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +### Uma interface para todos os agentes + +Dezenove agentes já vêm integrados, e qualquer outro agente compatível com ACP pode se juntar a eles pelo registro público ou pelo JSON de distribuição dele. O Codeg fala com cada um deles pelo Agent Client Protocol, então todos ganham a mesma conversa rica — cartões de ferramentas, diffs ao vivo, planos e pedidos de permissão — em vez de um terminal para você forçar a vista. Ative a Renderização de UI para um agente e ele poderá responder com cartões, tabelas e gráficos interativos. -**Sessões.** Traga o histórico que você já tem: sessões passadas de todos os agentes instalados, importadas com um clique e retomáveis de onde você parou. Uma vez dentro, elas deixam de ser silos separados — mencione uma sessão antiga com `@` e o agente com quem você está falando consegue lê-la, mesmo que outro agente a tenha escrito, de modo que a execução do Codex de hoje continua de onde a sessão do Claude Code da semana passada terminou. Por mais longa que fique uma conversa, ela abre nas rodadas recentes e carrega o resto conforme você rola para cima. +[Documentação →](https://docs.codeg.app/guide/supported-agents) · [Agentes personalizados →](https://docs.codeg.app/guide/custom-agents) · [Renderização de UI →](https://docs.codeg.app/guide/skills#cards-tables-and-charts-in-replies) -**Arquivos.** As edições do agente aparecem como diffs ao lado da conversa conforme acontecem. Abra qualquer arquivo em um editor de verdade com realce de sintaxe, envie um arquivo — ou apenas uma seleção — direto para o agente com `⌘L`, e visualize Markdown, HTML, imagens e documentos do Office no mesmo painel. + + + + Uma interface para todos os agentes + +
+ +### Todas as sessões, pesquisáveis + +O Codeg lê o histórico que a CLI de cada agente guarda em disco: importe-o com um clique, pesquise tudo e retome qualquer sessão de onde ela parou. Mencione uma sessão antiga com `@` e o agente com quem você está falando consegue lê-la — mesmo que outro agente a tenha escrito. Dê às conversas etiquetas coloridas, globais ou de uma só pasta, e filtre a barra lateral por elas. + +[Documentação →](https://docs.codeg.app/guide/aggregation) · [Etiquetas →](https://docs.codeg.app/guide/workspace#tag-conversations) -**Git.** Um cliente completo, não um indicador de status: faça commit direto da aba Alterações — escreva a mensagem, aperte Enter — com pull, fetch, push e stash ao lado, e um histórico que mostra quais commits já foram enviados. Crie branches, faça merge, rebase, reset ou compare com outro branch, e atualize ou envie qualquer branch sem mudar para ele. Conflitos abrem um editor de merge de três painéis onde você aceita hunk a hunk ou digita a correção você mesmo. E as worktrees transformam o trabalho paralelo em uma única ação — um branch novo, seu próprio diretório e uma conversa nova enraizada nele, para que uma frota de agentes construa funcionalidades diferentes ao mesmo tempo sem esbarrar nos arquivos uns dos outros. + + + + Todas as sessões, pesquisáveis + +
+ +### Colaboração multiagente + +Digite `@`, escolha um agente e envie. Cada agente mencionado roda como uma sessão própria, lado a lado, transmitindo de volta para a sua conversa — o Claude Code redigindo enquanto o Codex revisa — e os subagentes aparecem como cartões que vão se preenchendo enquanto trabalham. + +[Documentação →](https://docs.codeg.app/guide/multi-agent) -**Quando dá errado.** Um turno que falha não diz apenas que algo deu errado: no Claude Code e no Codex ele nomeia o tipo — problema de conexão, problema de acesso, limite atingido, requisição recusada, problema de serviço — e encaixa abaixo do compositor uma faixa com o que realmente ajudaria: Tentar de novo, Entrar ou uma nova sessão. As tentativas que o agente faz por conta própria aparecem em âmbar e terminam em uma única linha de “Recuperado”. E o indicador de conexão abaixo do compositor é um botão: clique para ver o estado real da sessão, com um Reconectar que retoma em vez de começar do zero. + + + + Colaboração multiagente + +
+ +### Tarefas a fazer que rodam sem supervisão + +Anote o trabalho e vá cuidar de outra coisa. Cada tarefa ganha a própria worktree e o próprio branch do git, começa na hora ou em um horário agendado e depois espera a sua revisão; aceite o diff e o agente faz o merge, e o Codeg confere o git antes de dar a tarefa como concluída. O painel do repositório também pode criá-las para você: ele pega issues e pull requests por etiqueta e autor, em horários agendados ou quando chega um webhook. + +[Documentação →](https://docs.codeg.app/guide/tasks) · [Processamento automático →](https://docs.codeg.app/guide/repository#let-it-pick-items-up-by-itself) + + + + + Tarefas a fazer que rodam sem supervisão + +
+ +### Canvas infinito + +Organize seu trabalho no espaço: conversas, arquivos, terminais e notas viram cartões em um quadro, agrupados por pasta e por agente, para que vários agentes possam rodar lado a lado, bem à vista. + +[Documentação →](https://docs.codeg.app/guide/canvas) + + + + + Canvas infinito + +
+ +### Desktop, servidor, celular e chat + +Rode o Codeg como aplicativo de desktop, como servidor auto-hospedado que você abre em qualquer navegador ou como um único contêiner Docker, e abra um servidor remoto pelo aplicativo de desktop em uma janela de espaço de trabalho própria. Clientes nativos para iPhone, iPad e Android — além de canais no Telegram, Lark e WeChat — mantêm seus agentes ao alcance, enquanto seus arquivos e sessões ficam em máquinas que você controla. + +[Documentação →](https://docs.codeg.app/getting-started/deployment) · [Espaços de trabalho remotos →](https://docs.codeg.app/guide/workspace#desktop-and-browser) · [Aplicativos móveis →](https://docs.codeg.app/getting-started/installation#mobile-apps) · [Canais de chat →](https://docs.codeg.app/guide/chat-channels) + + + + + Desktop, servidor, celular e chat + +
+ +### Documentos do Office e pesquisa + +Peça uma apresentação, um relatório ou uma planilha e veja o `.pptx`, o `.docx` ou o `.xlsx` de verdade sendo renderizado ao vivo ao lado da conversa; PDFs abrem em um visualizador próprio. As habilidades de pesquisa embutidas — hipóteses, desenho experimental, estatística, busca bibliográfica — funcionam com qualquer agente. + +[Documentação →](https://docs.codeg.app/guide/office) · [Pesquisa →](https://docs.codeg.app/guide/research) + + + + + Documentos do Office e pesquisa + +
+ +### Uso do navegador e do computador + +No aplicativo de desktop, os links abrem em um navegador integrado ao lado dos seus arquivos, em tamanho de desktop, tablet ou celular: entregue ao agente uma página, um elemento, uma captura de tela ou um erro do console, ou deixe-o conduzir uma página que você compartilhar. Em versão prévia, os agentes também podem ver e operar as janelas que você compartilhar — e o botão Parar fica a um clique. + +[Documentação →](https://docs.codeg.app/guide/browser) · [Uso do computador →](https://docs.codeg.app/guide/computer-use) + + + + + Uso do navegador e do computador + +
+ +### O ciclo completo de engenharia + +Um editor, diffs ao vivo e lado a lado, um cliente git completo com um editor de merge de três painéis, worktrees com um clique, um terminal integrado e visualizações divididas — tudo ao lado do agente, nos arquivos reais do seu repositório. + +[Documentação →](https://docs.codeg.app/guide/workspace) · [Git e worktrees →](https://docs.codeg.app/guide/git) + + + + + O ciclo completo de engenharia + +
-## 📱 iPhone, iPad e Android +**Também vem com:** + +- **[Painel do repositório](https://docs.codeg.app/guide/repository)** — issues, pull requests, verificações e merges para GitHub, GitLab, Gitea e Forgejo; qualquer issue ou PR pode virar uma tarefa a fazer +- **[Automações](https://docs.codeg.app/guide/automations)** — salve um compositor configurado e rode-o sem interface, por agendamento cron ou sob demanda +- **[Uso de tokens](https://docs.codeg.app/guide/token-usage)** — tendências, taxa de acerto de cache, um mapa de calor de atividade, uso por pasta, agente, modelo e sessão, e quanto isso custaria pelos preços de tabela da API +- **[Bifurcar e direcionar](https://docs.codeg.app/guide/workspace#follow-along-%E2%80%94-the-conversation)** — nos agentes que oferecem suporte, bifurque uma conversa a partir de uma resposta concluída ou insira uma mensagem em um turno que ainda está em andamento +- **[Skills](https://docs.codeg.app/guide/skills) e [MCP](https://docs.codeg.app/guide/mcp)** — pacotes de habilidades por agente, varredura local de MCP e busca e instalação pelo registro +- **[Inicializador de projeto](https://docs.codeg.app/guide/project-boot)** — gere a estrutura de um novo projeto visualmente, com pré-visualização ao vivo +- **[Notificações](https://docs.codeg.app/reference/settings/general#desktop-notifications)** — notificações do sistema, sons e um botão da barra de tarefas que pisca ou um ícone do Dock que pula quando um turno termina ou um agente precisa de você +- **[Do seu jeito](https://docs.codeg.app/reference/settings/appearance)** — doze temas que você pode recolorir token a token, papéis de parede, raio dos cantos, largura do chat, CSS personalizado e um pet de desktop — em qualquer um dos dez idiomas da interface +- **[Backup e sincronização](https://docs.codeg.app/reference/settings/system#backup-restore)** — backups criptografados e sincronização de configuração entre máquinas por meio de um arquivo ou do seu próprio servidor WebDAV +- **[Esquema de URL](../../docs/url-scheme.md)** — `codeg://session/` abre uma conversa a partir de outro aplicativo (desktop) +- **[Linha de comando](../../docs/cli.md)** — `codeg-cli` executa um prompt em um Codeg em execução, desktop ou servidor, a partir de um script ou de um job de CI, e imprime a resposta ou eventos JSON +- **E mais** — quase toda versão traz algo novo; as [notas de versão](https://github.com/spacering-net/codeg/releases) são a lista completa -Saia da mesa, não do trabalho. Os clientes nativos de iOS e Android se conectam ao Codeg que você já mantém rodando — o **Serviço web** do seu aplicativo de desktop ou o seu próprio `codeg-server` — e é de lá que você inicia sessões, acompanha respostas e chamadas de ferramentas em tempo real, responde a pedidos de permissão e navega por projetos e branches. Nada é movido para o celular: seus arquivos, as CLIs dos agentes e as conversas continuam na máquina que executa o Codeg, e o token de acesso fica no Chaveiro do iOS ou protegido pelo Android Keystore. Os dois clientes são de código aberto ([iOS](https://github.com/xintaofei/codeg-ios), [Android](https://github.com/xintaofei/codeg-android)); o pareamento leva três passos, descritos em [Aplicativos móveis](https://docs.codeg.app/getting-started/installation#mobile-apps). +## 🤖 Agentes suportados -| iPhone e iPad | Android | -| :---: | :---: | -| Iniciando uma sessão pelo cliente do Codeg para iOS | A resposta de um agente chegando ao vivo no cliente do Codeg para Android | +O Codeg conversa com todos os agentes pelo [Agent Client Protocol](https://agentclientprotocol.com), então cada um ganha a mesma interface estruturada. Dezenove já vêm integrados, e o Codeg instala, fixa a versão e atualiza a maioria deles por você: -## ✨ Destaques +

+ Claude Code   + Codex   + Gemini CLI   + OpenClaw   + OpenCode   + Cline   + Hermes Agent   + CodeBuddy   + Kimi Code   + Pi   + Grok   + Cursor   + DeepSeek Harness   + Qoder   + Google Antigravity   + Kiro CLI   + ZCode   + TRAE CLI   + Command Code   + + qualquer agente ACP +

-- **[Agregação de conversas](https://docs.codeg.app/guide/aggregation)** — importe as sessões de todos os agentes suportados para um espaço de trabalho unificado e pesquisável, e retome de onde parou -- **[Colaboração multiagente](https://docs.codeg.app/guide/multi-agent)** — mencione qualquer agente com `@` para delegar: subagentes de tipos diferentes rodam como sessões próprias, em paralelo, dentro de uma mesma tarefa -- **[Tarefas a fazer](https://docs.codeg.app/guide/tasks)** — anote o que precisa ser feito e os agentes vão esvaziando a fila, cada tarefa na própria worktree, entrando no seu branch só depois que você revisar -- **[Agentes personalizados](https://docs.codeg.app/guide/custom-agents)** — registre qualquer outro agente compatível com ACP a partir do registro público ou do JSON de distribuição; o Codeg instala, grava o histórico e o trata como um agente nativo -- **[O espaço de trabalho](https://docs.codeg.app/guide/workspace)** — todo o ciclo de engenharia ao lado do agente: árvore de arquivos, editor e diff, alterações do git, commit, um terminal integrado e [várias pastas vinculadas em um só espaço de trabalho](https://docs.codeg.app/guide/workspace#work-across-several-folders) -- **[Visualização dividida](https://docs.codeg.app/guide/workspace#split-the-conversation-view-into-groups)** — divida a área de conversa em quantos grupos de abas quiser, arraste abas e divisores entre eles e recupere o layout — com rascunhos — ao reiniciar -- **[Git e worktrees](https://docs.codeg.app/guide/git)** — revise e faça commit das alterações, gerencie contas remotas do Git e trabalhe em paralelo com os fluxos `git worktree` integrados -- **[Uso de tokens](https://docs.codeg.app/guide/token-usage)** — um relatório completo por trás do contador na barra de status: tendências e taxa de acerto de cache, um mapa de calor de atividade e recortes por pasta, agente, modelo e sessão -- **[Canais de chat](https://docs.codeg.app/guide/chat-channels)** — comande seus agentes pelo Telegram, Lark (Feishu) e WeChat: crie tarefas, aprove permissões e receba atualizações ao vivo -- **[Automações](https://docs.codeg.app/guide/automations)** — salve um compositor totalmente configurado como uma automação reutilizável que roda sem interface, por agendamento cron ou sob demanda — iniciando uma sessão ou deixando uma tarefa a fazer para você revisar depois -- **[Documentos do Office](https://docs.codeg.app/guide/office)** — crie, analise, revise e edite `.docx` / `.xlsx` / `.pptx` com o `officecli` embutido, com pré-visualização ao vivo na própria aba -- **[Pesquisa científica](https://docs.codeg.app/guide/research)** — habilidades de pesquisa embutidas (geração de hipóteses, desenho experimental, estatística, visualização, avaliação crítica, busca bibliográfica) que qualquer agente pode invocar -- **[Project Boot](https://docs.codeg.app/guide/project-boot)** — crie novos projetos visualmente, com pré-visualização ao vivo, e abra-os direto no espaço de trabalho -- **[MCP](https://docs.codeg.app/guide/mcp) & [Skills](https://docs.codeg.app/guide/skills)** — varredura de servidores locais mais busca/instalação pelo registro, e habilidades gerenciadas em escopo global ou de projeto -- **[Do seu jeito](https://docs.codeg.app/reference/settings/appearance)** — recolora qualquer um dos doze temas token a token, defina o arredondamento dos cantos para o app inteiro, importe e exporte temas como JSON do shadcn, ou escreva seu próprio CSS -- **[Desktop, servidor e Docker](https://docs.codeg.app/getting-started/deployment)** — um app de desktop nativo, um `codeg-server` independente acessível de qualquer navegador, ou `docker compose up` -- **[iPhone, iPad e Android](https://docs.codeg.app/getting-started/installation#mobile-apps)** — clientes móveis nativos que se conectam ao seu desktop ou servidor: inicie sessões, receba respostas em streaming, aprove permissões e navegue pelos projetos de onde estiver +Não está na lista? Escolha qualquer agente no registro público do ACP ou cole o JSON de distribuição dele — o Codeg o instala, verifica se ele consegue iniciar e o trata como um agente integrado. Requisitos de execução e onde cada agente guarda as sessões: [Agentes suportados](https://docs.codeg.app/guide/supported-agents). -## 📦 Instalação e execução +## 📦 Instalação -**Desktop** — baixe o instalador para macOS, Windows ou Linux em [Releases](https://github.com/xintaofei/codeg/releases) e siga a [Instalação](https://docs.codeg.app/getting-started/installation). +**Desktop** — os instaladores para macOS, Windows e Linux estão em [Releases](https://github.com/spacering-net/codeg/releases/latest); o passo a passo está em [Instalação](https://docs.codeg.app/getting-started/installation). **Servidor** — rode o Codeg sem interface e acesse de qualquer navegador. No Linux ou macOS: ```bash -curl -fsSL https://raw.githubusercontent.com/xintaofei/codeg/main/install.sh | bash +curl -fsSL https://raw.githubusercontent.com/spacering-net/codeg/main/install.sh | bash CODEG_STATIC_DIR=/usr/local/share/codeg/web codeg-server ``` No Windows, no PowerShell: ```powershell -irm https://raw.githubusercontent.com/xintaofei/codeg/main/install.ps1 | iex -$env:CODEG_STATIC_DIR="$env:LOCALAPPDATA\codeg\web"; codeg-server +irm https://raw.githubusercontent.com/spacering-net/codeg/main/install.ps1 | iex +$env:CODEG_STATIC_DIR="$env:LOCALAPPDATA\codeg-server\web"; codeg-server ``` **Docker** — o mesmo servidor, em um contêiner: ```bash -docker run -d -p 3080:3080 -v codeg-data:/data ghcr.io/xintaofei/codeg:latest +docker run -d -p 3080:3080 -v codeg-data:/data ghcr.io/spacering-net/codeg:latest ``` -**Celular e tablet** — instale o [app de iOS](https://apps.apple.com/app/codeg-client/id6785199071) ou o [APK do Android](https://github.com/xintaofei/codeg-android/releases/latest) e aponte-o para o **Serviço web** do seu aplicativo de desktop ou para o seu próprio `codeg-server`: URL, token, pronto. Os passos de pareamento estão em [Aplicativos móveis](https://docs.codeg.app/getting-started/installation#mobile-apps). +Nos dois casos, abra `http://:3080` no navegador e informe o token de acesso que o servidor exibe ao iniciar (no contêiner, veja com `docker logs`), ou defina `CODEG_TOKEN` para escolher o seu. + +**Celular e tablet** — instale o [app de iOS](https://apps.apple.com/app/codeg-client/id6785199071) ou o [APK do Android](https://github.com/xintaofei/codeg-android/releases/latest) e aponte-o para o **Serviço Web** do seu aplicativo de desktop ou para o seu próprio `codeg-server`: URL, token, pronto. Os passos de pareamento estão em [Aplicativos móveis](https://docs.codeg.app/getting-started/installation#mobile-apps). + +Compose, binários pré-compilados, builds a partir do código e atualizações no lugar estão em [Implantação](https://docs.codeg.app/getting-started/deployment); variáveis de ambiente, em [Configuração](https://docs.codeg.app/getting-started/configuration). + +## 👥 Comunidade e suporte -Compose, binários pré-compilados, builds a partir do código e atualizações no lugar estão em [Implantação](https://docs.codeg.app/getting-started/deployment); variáveis de ambiente, em [Configuração](https://docs.codeg.app/getting-started/configuration). Para compilar o próprio Codeg: [Desenvolvimento](https://docs.codeg.app/reference/development) e [Arquitetura](https://docs.codeg.app/reference/architecture). +- **WeChat** — escaneie o QR code para entrar em nosso grupo para discussões, feedback e atualizações: -## 🔒 Privacidade e segurança + + + WeChat + -- Local em primeiro lugar por padrão para análise, armazenamento e operações de projeto — o acesso à rede só acontece em ações iniciadas por você -- Os modos web e servidor são protegidos por autenticação baseada em token -- Suporte a proxy do sistema para ambientes corporativos +- **Issues** — encontrou um bug ou sentiu falta de um recurso? [Abra uma issue](https://github.com/spacering-net/codeg/issues). +- **Privacidade** — local em primeiro lugar: análise, armazenamento e operações de projeto ficam na sua máquina, e os modos web e servidor são protegidos por autenticação baseada em token. Detalhes em [Privacidade e segurança](https://docs.codeg.app/reference/privacy). +- **LinuxDO** — obrigado à comunidade [LinuxDO](https://linux.do) pelo apoio. +- **Apoie o projeto** — [dê uma estrela ao repositório](https://github.com/spacering-net/codeg) para acompanhar o desenvolvimento. -Detalhes em [Privacidade e segurança](https://docs.codeg.app/reference/privacy). +## 🤝 Como contribuir -## 👥 Comunidade +Issues e pull requests são bem-vindos. Para compilar o Codeg você mesmo, comece por [Desenvolvimento](https://docs.codeg.app/reference/development) e [Arquitetura](https://docs.codeg.app/reference/architecture). -- Escaneie o QR code abaixo para entrar em nosso grupo do WeChat para discussões, feedback e atualizações + + Contribuidores do Codeg + -WeChat -WeChat +## ⭐ Histórico de estrelas -- Obrigado à comunidade [LinuxDO](https://linux.do) pelo apoio + + + + + Star History Chart + + ## 🙏 Agradecimentos @@ -221,6 +363,8 @@ Detalhes em [Privacidade e segurança](https://docs.codeg.app/reference/privacy) - [Superpowers](https://github.com/obra/superpowers) — alimenta o módulo de habilidades de especialistas do Codeg - [OfficeCLI](https://github.com/iOfficeAI/OfficeCLI) — alimenta o fluxo de trabalho de documentos Office do Codeg - [scientific-agent-skills](https://github.com/K-Dense-AI/scientific-agent-skills) — alimenta as habilidades de Pesquisa científica do Codeg (subconjunto licenciado sob MIT) +- [json-render](https://github.com/vercel-labs/json-render) — alimenta os cartões, tabelas e gráficos da Renderização de UI do Codeg +- [cua-driver](https://github.com/trycua/cua) — alimenta o Uso do computador do Codeg ## 📜 Licença diff --git a/docs/readme/README.zh-CN.md b/docs/readme/README.zh-CN.md index ba72b45e08..8644c2d08c 100644 --- a/docs/readme/README.zh-CN.md +++ b/docs/readme/README.zh-CN.md @@ -1,32 +1,44 @@ -# Codeg - -[![Release](https://img.shields.io/github/v/release/xintaofei/codeg)](https://github.com/xintaofei/codeg/releases) -[![Docs](https://img.shields.io/badge/docs-docs.codeg.app-3451b2)](https://docs.codeg.app) -[![License](https://img.shields.io/github/license/xintaofei/codeg)](../../LICENSE) - -

- English | - 简体中文 | - 繁體中文 | - 日本語 | - 한국어 | - Español | - Deutsch | - Français | - Português | - العربية +

+ Codeg logo Codeg +

+ +

+ GitHub stars + Latest release + Total downloads + License + Documentation + Platforms: macOS, Windows, Linux, Docker, iOS, Android

-Codeg(Code Generation)是一个多智能体编码工作台:把所有 AI 编码智能体收进同一个地方 —— 并让它们协同工作。 +

+ English · 简体中文 · 繁體中文 · 日本語 · 한국어 · Español · Deutsch · Français · Português · العربية +

-它将所有受支持智能体 CLI 的会话聚合进一个可搜索的工作区,让主智能体在同一个任务内委派给其它类型的子智能体。不想守着做完的活,可以写进待办任务:每个任务待在自己的分支上无人值守地跑,做完了等你验收才落地。Codeg 可作为桌面应用、独立服务器或 Docker 容器运行,还有原生 iOS 与 Android 客户端,让你离开电脑后也能接手正在跑的任务;内置十五个智能体,你也可以自行注册任何其它兼容 ACP 的智能体。 +

+ 多智能体编码工作台。
+ 把所有 AI 编码智能体收进同一个地方 —— 并让它们协同工作。 +

-![工作区](../images/workspace-light.png#gh-light-mode-only) -![工作区](../images/workspace-dark.png#gh-dark-mode-only) +

下载 Codeg · 使用文档

-## 📖 文档 +

+ + + Codeg 工作区:与智能体的对话、实时 diff 与项目文件并排呈现 + +

-**完整文档见 [docs.codeg.app](https://docs.codeg.app)** — [快速开始](https://docs.codeg.app/zh/getting-started/) · [指南](https://docs.codeg.app/zh/guide/) · [参考](https://docs.codeg.app/zh/reference/) + + + + + + + + + +
🧩 一个界面,容纳所有智能体
内置十九个智能体,任何兼容 ACP 的智能体都能加入——全部呈现为同一套结构化对话,而不是一个终端。
🔎 会话随你流转
导入、搜索、续接每个智能体留在磁盘上的历史,还能把它交给另一个智能体接着做。
🤝 智能体协同工作
一个 @ 就能跨智能体委派,也可以把待办任务排进队列,在各自的工作树里无人值守地跑。
🌍 随时随地
桌面应用、自托管服务器或 Docker,iPhone、iPad 与 Android——还有 Telegram、飞书和微信。
## 💖 赞助 @@ -45,13 +57,6 @@ Codeg(Code Generation)是一个多智能体编码工作台:把所有 AI 感谢合租巴士对本项目的赞助!合租巴士是一家可靠高效的 AI 中转服务平台,主要提供 Codex、Claude Code 等主流模型的高稳定中转能力,充值比例透明(1:1),Codex 倍率补贴低至 0.08。官网进群送 5 刀体验金。 - - - LQ router
- LQ router - - 感谢 LQ router 中转站对本项目的赞助!LQ router 是一家专业的企业级 AI 中转站,为企业和个人开发者提供稳定、高效、低成本的 AI 模型 API 接入服务。平台支持 GPT、Claude、Grok、Gemini 等主流模型,GPT Pro 倍率低至 0.1。官网进群赠送1美金体验额度。 - APIMart
@@ -72,10 +77,10 @@ Codeg(Code Generation)是一个多智能体编码工作台:把所有 AI - Fluxion AI
- Fluxion AI + Sidrune AI
+ Sidrune AI - 感谢 Fluxion AI 对本项目的赞助!Fluxion AI 通过一个统一的 API,提供快速、可靠、高性价比的 GPT、Claude、Gemini 等领先 AI 模型接入。新用户通过我们的专属链接注册可获得 3 美元 API 额度。 + 感谢 Sidrune AI 对本项目的赞助!Sidrune AI 通过一个 API 接入 GPT、Claude 等主流 AI 模型。新用户通过我们的专属链接注册时使用优惠码 SDRCODEG,即送 3 美元 API 额度。 @@ -88,132 +93,269 @@ Codeg(Code Generation)是一个多智能体编码工作台:把所有 AI > 想成为 Codeg 赞助商?[欢迎通过邮件与我们联系。](mailto:itpkcn@gmail.com) -## 🤖 支持的 Agent - -Claude Code · Codex · Gemini · OpenClaw · OpenCode · Cline · Hermes · CodeBuddy · Kimi Code · Pi · Grok · Cursor · DeepSeek Harness · Qoder · Google Antigravity - -其中大部分 Codeg 都能替你安装、锁定版本并更新。完整名单、各自的运行环境要求以及会话在磁盘上的存放位置,见 [支持的智能体](https://docs.codeg.app/zh/guide/supported-agents)。 - -名单之外的呢?自己加就行。从公开的 ACP 注册表里挑一个,或者粘贴它的 distribution JSON,Codeg 会安装它、预检它能否启动,然后像对待内置智能体一样对待它——出现在选择器里,接受 `@` 委派与技能配置;即便这个智能体本身不留下任何历史,它的会话也会被记录下来并可搜索。→ [自定义智能体](https://docs.codeg.app/zh/guide/custom-agents) - -## 🤝 多智能体协作 - -多智能体协作,从此只需一个按键:输入 `@`,选中智能体,发送。剩下的调度全交给 Codeg —— 它把每个被提及的智能体拉起为独立会话,交付任务,再把工作实时汇流回你正在进行的对话。提及两个,它们就并肩开工:Claude Code 起草,Codex 同步评审。不用来回切换上下文,也不必在多个终端之间复制粘贴。 +## ✨ 功能特性 -如果智能体自己派出了子智能体——Claude Code、Codex、Grok 与 OpenCode 都会——每个子智能体都有一张边跑边填的卡片,而不是等结束后一次性出现。点开就能读它自己的那个会话。 - -![在单个 Codeg 会话中将任务委派给子智能体](../images/collaboration-light.gif#gh-light-mode-only) -![在单个 Codeg 会话中将任务委派给子智能体](../images/collaboration-dark.gif#gh-dark-mode-only) - -## ✅ 待办任务 - -不是每件事都得你盯着做完。写下来就行——标题、说明、用哪个智能体跑——Codeg 会给它**一份独立的代码副本**:项目旁边的一个 git 工作树,跑在自己的分支上。几个任务同时开工也互不干扰,更不会碰你手头那份代码。可以约在今晚开始,也可以让某个文件夹自己按并发上限一件件处理下去。 - -做完的任务不会自己合并。它会移到待验收那一栏等着你:看 diff、打回去再做一轮,或者点通过——然后由智能体来落地,先把基础分支并进它的工作树、在那里解完冲突。之后 Codeg 不听智能体一面之词,而是自己去核对 git:确认不了的合并会退回待验收,而不是报一句成功。 - -![待办任务看板:任务从「待办」经「进行中」走到「完成」](../images/task-light.png#gh-light-mode-only) -![待办任务看板:任务从「待办」经「进行中」走到「完成」](../images/task-dark.png#gh-dark-mode-only) - -## 🪟 分屏 - -一条标签栏不总是够用。右键点击会话标签,即可把视图**向右**或**向下**拆分,想拆几次就拆几次:左右两栏、上下三格,或者一整片网格。每个分组都是独立的工作区——自己的标签、自己的标题栏、自己的新建会话按钮——所以左边这格可以让 Claude Code 重构,右边那格让 Codex 审阅 diff。 - -把标签从一个分组拖到另一个分组,它的会话在搬家途中也不会中断;拖动两个分组之间的分隔条,就能改变它们分配空间的方式。布局会按工作区记住,草稿也包含在内:重新打开 Codeg,拆分原样回来,没发出去的文字还在输入框里。 - -![把会话区拆分成标签分组构成的网格](../images/split-light.gif#gh-light-mode-only) -![把会话区拆分成标签分组构成的网格](../images/split-dark.gif#gh-dark-mode-only) - -## 📄 Office 文档 - -让智能体做一份演示、一份报告或一张表,它交付的是真正的 `.pptx` / `.docx` / `.xlsx` —— 右侧面板同时实时渲染。每一次改动都会自己落进预览:幻灯片逐页成形,表格逐步铺开,数字落入单元格。第 4 页不满意?下一条消息说一声就行 —— 智能体原地改同一个文件,预览随即跟上。无需导出,无需外部 Office 应用,全程不用离开 Codeg。 - -![智能体编辑 Office 文档,旁边是实时预览](../images/office-light.png#gh-light-mode-only) -![智能体编辑 Office 文档,旁边是实时预览](../images/office-dark.png#gh-dark-mode-only) - -## 💻 工作区 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +### 一个界面,容纳所有智能体 + +内置十九个智能体,其它兼容 ACP 的智能体也能从公开注册表或它的 distribution JSON 加入。Codeg 与每一个智能体都用 Agent Client Protocol 对话,所以它们拿到的是同一套丰富的对话界面——工具卡片、实时 diff、计划与权限确认——而不是一个得眯着眼看的终端。为智能体启用「界面渲染」后,它还能用可交互的卡片、表格和图表来回复。 -一个工作区,容纳所有智能体。无论正在干活的是 Claude Code、Codex 还是 Cursor,它们都在同一个编辑器、同一套实时 diff、同一个 Git 客户端里工作,而产出的是你仓库里真实的文件,就在你眼前变化。还可以把别的目录挂进来——共用的库、隔壁的服务、文档仓库——文件树、搜索与智能体本身都把它们当作同一个工作区。 +[文档 →](https://docs.codeg.app/zh/guide/supported-agents) · [自定义智能体 →](https://docs.codeg.app/zh/guide/custom-agents) · [界面渲染 →](https://docs.codeg.app/zh/guide/skills#cards-tables-and-charts-in-replies) -**会话**:把你已有的历史一并接管 —— 所有已安装智能体的过往会话,一键导入,并可从中断处继续。进来之后它们不再是彼此隔绝的孤岛 —— `@` 提及一个旧会话,你正在对话的智能体就能读到它,哪怕那是另一个智能体留下的,于是今天的 Codex 能接着上周 Claude Code 停下的地方往下做。无论一个会话攒得多长,打开时都先呈现最近几轮,剩下的随你往上翻再逐段补齐。 + + + + 一个界面,容纳所有智能体 + +
+ +### 每个会话,都搜得到 + +Codeg 读取每个智能体 CLI 留在磁盘上的历史:一键导入,全部可搜,任意会话都能从中断处继续。`@` 提及一个旧会话,你正在对话的智能体就能读到它——哪怕那是另一个智能体留下的。还能给会话打上彩色标签,可全局通用,也可只属于某个文件夹,并按标签筛选侧边栏。 + +[文档 →](https://docs.codeg.app/zh/guide/aggregation) · [标签 →](https://docs.codeg.app/zh/guide/workspace#tag-conversations) -**文件**:智能体的改动会以 diff 的形式,随着落盘即时呈现在对话旁边。任意文件都能在带语法高亮的真实编辑器里打开,用 `⌘L` 把整个文件(或仅一段选区)直接交给智能体,Markdown、HTML、图片与 Office 文档也都在同一面板内预览。 + + + + 每个会话,都搜得到 + +
+ +### 多智能体协作 + +输入 `@`,选中智能体,发送。每个被提及的智能体都作为独立会话并肩开工,工作实时汇流回你的对话——Claude Code 起草,Codex 同步评审——子智能体则以卡片呈现,边跑边填。 + +[文档 →](https://docs.codeg.app/zh/guide/multi-agent) -**Git**:一个完整的客户端,而不只是状态展示 —— 在「更改」标签页里直接提交(写一句话,回车即可),旁边就是拉取、抓取、推送与贮藏,历史里还标着每条提交推没推出去。新建分支、合并、变基、重置、与另一个分支比较,也能不切过去就更新或推送任意分支。遇到冲突会打开三栏合并编辑器,逐块采纳或自己动手写。而工作树把并行开发压缩成一个动作 —— 新分支、独立目录,外加一个扎根其中的新会话,于是一队智能体可以同时开发不同功能,谁也不碰谁的文件。 + + + + 多智能体协作 + +
+ +### 无人值守的待办任务 + +把活写下来就可以走开。每个待办任务都有自己的 git 工作树与分支,可以马上开始,也可以定时启动,做完后在待验收里等你;你通过 diff,智能体就把它落地,而 Codeg 会先核对 git 再确认完成。仓库面板还能替你添加:按标签和作者挑选议题与拉取请求,定时扫描,或由 Webhook 触发。 + +[文档 →](https://docs.codeg.app/zh/guide/tasks) · [自动处理 →](https://docs.codeg.app/zh/guide/repository#let-it-pick-items-up-by-itself) + + + + + 无人值守的待办任务 + +
+ +### 无限画布 + +把工作在空间里铺开:对话、文件、终端与便签都成了画板上的卡片,按文件夹与智能体分组,几个智能体并排运行,一目了然。 + +[文档 →](https://docs.codeg.app/zh/guide/canvas) + + + + + 无限画布 + +
+ +### 桌面、服务器、手机与聊天 + +Codeg 可以作为桌面应用运行,也可以作为用任意浏览器访问的自托管服务器,或者一个 Docker 容器;桌面应用还能连接远端服务器,在独立窗口中打开远端工作区。原生 iPhone、iPad 与 Android 客户端——再加上 Telegram、飞书与微信渠道——让智能体随时触手可及,而你的文件与会话始终留在你自己掌控的机器上。 + +[文档 →](https://docs.codeg.app/zh/getting-started/deployment) · [远端工作区 →](https://docs.codeg.app/zh/guide/workspace#desktop-and-browser) · [移动应用 →](https://docs.codeg.app/zh/getting-started/installation#mobile-apps) · [消息渠道 →](https://docs.codeg.app/zh/guide/chat-channels) + + + + + 桌面、服务器、手机与聊天 + +
+ +### Office 文档与科学研究 + +让智能体做一份演示、一份报告或一张表,看着真正的 `.pptx`、`.docx` 或 `.xlsx` 在对话旁实时渲染,PDF 也能在内置阅读器里直接打开。内置的科研技能——假设生成、实验设计、统计分析、文献检索——任意智能体都能调用。 + +[文档 →](https://docs.codeg.app/zh/guide/office) · [科学研究 →](https://docs.codeg.app/zh/guide/research) + + + + + Office 文档与科学研究 + +
+ +### 浏览器与电脑操作 + +在桌面应用里,链接会在文件旁的内置浏览器中打开,还能切换成平板或手机尺寸:把页面、元素、截图或控制台报错直接交给智能体,或者让它驱动你共享的页面。处于预览阶段的电脑操作还能让智能体看到并操作你共享的窗口——停止只需一键。 + +[文档 →](https://docs.codeg.app/zh/guide/browser) · [电脑操作 →](https://docs.codeg.app/zh/guide/computer-use) + + + + + 浏览器与电脑操作 + +
+ +### 完整的工程闭环 + +编辑器、实时 diff 与左右对比 diff、带三栏合并编辑器的完整 Git 客户端、一键工作树、内置终端与分屏——全都在智能体旁边,作用于你仓库里的真实文件。 + +[文档 →](https://docs.codeg.app/zh/guide/workspace) · [Git 与工作树 →](https://docs.codeg.app/zh/guide/git) + + + + + 完整的工程闭环 + +
-**出问题的时候**:回合失败了不会只说一句「出错了」—— Claude Code 与 Codex 会说清是哪一类:连接问题、登录问题、额度用尽、请求被拒、服务异常 —— 并在输入框下方留一条提示,只放真正帮得上忙的按钮:重试、去登录,或者新建会话。智能体自己在重试时显示为琥珀色,回合正常结束后收敛成一行「已恢复」。输入框下面那个连接状态图标也是个按钮:点开就能看到这个会话的真实状态,还有一个会恢复而不是重开的「重新连接」。 +**还有这些:** -## 📱 iPhone、iPad 与 Android +- **[仓库面板](https://docs.codeg.app/zh/guide/repository)** — GitHub、GitLab、Gitea 与 Forgejo 的议题、拉取请求、检查与合并;任意议题或 PR 都能变成待办任务 +- **[自动化](https://docs.codeg.app/zh/guide/automations)** — 把配置好的输入框存成自动化,按 cron 计划或手动触发、无界面运行 +- **[Token 用量](https://docs.codeg.app/zh/guide/token-usage)** — 趋势与缓存命中率、活跃热力图、按文件夹、智能体、模型与会话的分项统计,以及按 API 标价估算的花费 +- **[分叉与插话](https://docs.codeg.app/zh/guide/workspace#follow-along-%E2%80%94-the-conversation)** — 在支持的智能体上,从已完成的回复分叉出新会话,或者在回合进行中插进一条消息 +- **[技能](https://docs.codeg.app/zh/guide/skills) 与 [MCP](https://docs.codeg.app/zh/guide/mcp)** — 按智能体启用的技能包、本地 MCP 扫描,以及注册表搜索与安装 +- **[项目启动器](https://docs.codeg.app/zh/guide/project-boot)** — 可视化创建新项目,并实时预览 +- **[通知与提醒](https://docs.codeg.app/zh/reference/settings/general#desktop-notifications)** — 回合结束或智能体需要你时,发出桌面通知和提示音,并让任务栏按钮闪烁、Dock 图标跳动 +- **[外观自定义](https://docs.codeg.app/zh/reference/settings/appearance)** — 十二套主题都能逐个色彩 token 重新调色,还有壁纸、圆角、聊天区域宽度、自定义 CSS 与桌面宠物——界面支持十种语言 +- **[备份与同步](https://docs.codeg.app/zh/reference/settings/system#backup-restore)** — 可加密的备份,以及通过文件或你自己的 WebDAV 服务器在多台机器之间同步配置 +- **[URL Scheme](../../docs/url-scheme.md)** — 用 `codeg://session/` 从其它应用直接打开一个会话(桌面端) +- **[命令行](../../docs/cli.md)** — 用 `codeg-cli` 在脚本或 CI 任务里把提示词交给正在运行的 Codeg(桌面端或服务器)执行,输出回复或 JSON 事件 +- **还有更多** — 几乎每个版本都有新东西;完整清单见 [发布说明](https://github.com/spacering-net/codeg/releases) -离开电脑,任务也不必停下。原生 iOS 与 Android 客户端连接的就是你自己在跑的那个 Codeg —— 桌面应用的 **Web 服务**,或者你自己的 `codeg-server` —— 在手机上发起会话、看着回复与工具调用实时流回、处理权限审批、浏览项目与分支。手机上不会多出任何东西:文件、智能体 CLI 与会话仍留在运行 Codeg 的那台机器上,访问令牌则交由 iOS Keychain 或 Android Keystore 保管。两个客户端均已开源([iOS](https://github.com/xintaofei/codeg-ios)、[Android](https://github.com/xintaofei/codeg-android));三步即可完成配对,见 [移动应用](https://docs.codeg.app/zh/getting-started/installation#mobile-apps)。 +## 🤖 支持的智能体 -| iPhone 与 iPad | Android | -| :---: | :---: | -| 在 Codeg iOS 客户端中发起会话 | 智能体回复实时流入 Codeg Android 客户端 | +Codeg 通过 [Agent Client Protocol](https://agentclientprotocol.com) 与每个智能体对话,所以它们拿到的都是同一套结构化界面。内置十九个,其中大部分 Codeg 都能替你安装、锁定版本并更新: -## ✨ 核心亮点 +

+ Claude Code   + Codex   + Gemini CLI   + OpenClaw   + OpenCode   + Cline   + Hermes Agent   + CodeBuddy   + Kimi Code   + Pi   + Grok   + Cursor   + DeepSeek Harness   + Qoder   + Google Antigravity   + Kiro CLI   + ZCode   + TRAE CLI   + Command Code   + + 任意 ACP 智能体 +

-- **[会话聚合](https://docs.codeg.app/zh/guide/aggregation)** — 把所有受支持智能体的会话导入统一、可搜索的工作区,并从上次中断处继续 -- **[多智能体协作](https://docs.codeg.app/zh/guide/multi-agent)** — `@` 提及任意智能体即可委派:不同类型的子智能体各自作为独立会话,在同一个任务内并行运行 -- **[待办任务](https://docs.codeg.app/zh/guide/tasks)** — 把要做的事写下来,智能体一件件做完;每个任务在自己的工作树里跑,只有你验收之后才会合进你的分支 -- **[自定义智能体](https://docs.codeg.app/zh/guide/custom-agents)** — 从公开注册表或 distribution JSON 注册任何其它兼容 ACP 的智能体;Codeg 负责安装、记录历史,并像内置智能体一样对待它 -- **[工作区](https://docs.codeg.app/zh/guide/workspace)** — 智能体旁边就是完整的工程闭环:文件树、编辑器与 diff、Git 变更、提交、内置终端,以及[挂进同一个工作区的多个文件夹](https://docs.codeg.app/zh/guide/workspace#work-across-several-folders) -- **[分屏](https://docs.codeg.app/zh/guide/workspace#split-the-conversation-view-into-groups)** — 把会话区拆成任意多个标签分组,在分组之间拖动标签与分隔条,重启后布局(含草稿)原样回来 -- **[Git 与 Worktree](https://docs.codeg.app/zh/guide/git)** — 查看并提交变更、管理 Git 远程账号,用内置 `git worktree` 流程并行开发 -- **[Token 用量](https://docs.codeg.app/zh/guide/token-usage)** — 状态栏计数器背后是一整份报告:趋势与缓存命中率、活跃热力图,以及按文件夹、智能体、模型与会话的分项 -- **[消息渠道](https://docs.codeg.app/zh/guide/chat-channels)** — 在 Telegram、飞书、微信里直接驱动智能体:创建任务、批准权限、实时接收进展 -- **[自动化](https://docs.codeg.app/zh/guide/automations)** — 把配置好的输入框存成可复用的自动化任务,按 cron 计划或手动触发、无界面运行——可以开一个会话,也可以留一条待办任务等你验收 -- **[Office 文档](https://docs.codeg.app/zh/guide/office)** — 通过内置 `officecli` 创建、分析、校对和编辑 `.docx` / `.xlsx` / `.pptx`,并在标签页内实时预览 -- **[科学研究](https://docs.codeg.app/zh/guide/research)** — 内置科研技能(假设生成、实验设计、统计、可视化、批判性评估、文献检索),任意智能体均可调用 -- **[项目启动器](https://docs.codeg.app/zh/guide/project-boot)** — 可视化创建新项目并实时预览,创建完直接在工作区打开 -- **[MCP](https://docs.codeg.app/zh/guide/mcp) & [技能](https://docs.codeg.app/zh/guide/skills)** — 本地服务器扫描 + 市场搜索/安装,技能支持全局与项目级管理 -- **[外观自定义](https://docs.codeg.app/zh/reference/settings/appearance)** — 十二套主题都能逐个色彩 token 重新调色、全局设定圆角大小、以 shadcn JSON 导入导出主题,或者干脆自己写 CSS -- **[桌面端、服务器与 Docker](https://docs.codeg.app/zh/getting-started/deployment)** — 原生桌面应用、可用浏览器访问的独立 `codeg-server`,或者 `docker compose up` -- **[iPhone、iPad 与 Android](https://docs.codeg.app/zh/getting-started/installation#mobile-apps)** — 原生移动客户端连接你的桌面端或服务器:随时随地发起会话、接收流式回复、批准权限、浏览项目 +名单之外的呢?从公开的 ACP 注册表里挑一个,或者粘贴它的 distribution JSON——Codeg 会安装它、预检它能否启动,然后像对待内置智能体一样对待它。各自的运行环境要求以及会话在磁盘上的存放位置,见 [支持的智能体](https://docs.codeg.app/zh/guide/supported-agents)。 -## 📦 安装与运行 +## 📦 安装 -**桌面端** — 从 [Releases](https://github.com/xintaofei/codeg/releases) 下载 macOS、Windows 或 Linux 的安装包,再按 [安装](https://docs.codeg.app/zh/getting-started/installation) 操作。 +**桌面端** — macOS、Windows 与 Linux 的安装包都在 [Releases](https://github.com/spacering-net/codeg/releases/latest),安装步骤见 [安装](https://docs.codeg.app/zh/getting-started/installation)。 **服务器** — 无界面运行 Codeg,用任意浏览器访问。Linux 或 macOS: ```bash -curl -fsSL https://raw.githubusercontent.com/xintaofei/codeg/main/install.sh | bash +curl -fsSL https://raw.githubusercontent.com/spacering-net/codeg/main/install.sh | bash CODEG_STATIC_DIR=/usr/local/share/codeg/web codeg-server ``` Windows(PowerShell): ```powershell -irm https://raw.githubusercontent.com/xintaofei/codeg/main/install.ps1 | iex -$env:CODEG_STATIC_DIR="$env:LOCALAPPDATA\codeg\web"; codeg-server +irm https://raw.githubusercontent.com/spacering-net/codeg/main/install.ps1 | iex +$env:CODEG_STATIC_DIR="$env:LOCALAPPDATA\codeg-server\web"; codeg-server ``` **Docker** — 同一个服务器,装进一个容器: ```bash -docker run -d -p 3080:3080 -v codeg-data:/data ghcr.io/xintaofei/codeg:latest +docker run -d -p 3080:3080 -v codeg-data:/data ghcr.io/spacering-net/codeg:latest ``` +无论哪种方式,都在浏览器里打开 `http://:3080`,输入服务器启动时打印的访问令牌(容器用 `docker logs` 查看);也可以用 `CODEG_TOKEN` 自己指定。 + **移动端** — 安装 [iOS 应用](https://apps.apple.com/app/codeg-client/id6785199071) 或 [Android APK](https://github.com/xintaofei/codeg-android/releases/latest),再把它指向桌面应用的 **Web 服务**或你自己的 `codeg-server`:填地址、填令牌,完成。配对步骤见 [移动应用](https://docs.codeg.app/zh/getting-started/installation#mobile-apps)。 -Compose、预编译二进制、源码构建与就地升级见 [部署](https://docs.codeg.app/zh/getting-started/deployment);环境变量见 [配置](https://docs.codeg.app/zh/getting-started/configuration)。想构建 Codeg 本身:[开发](https://docs.codeg.app/zh/reference/development) 与 [架构](https://docs.codeg.app/zh/reference/architecture)。 +Compose、预编译二进制、源码构建与就地升级见 [部署](https://docs.codeg.app/zh/getting-started/deployment);环境变量见 [配置](https://docs.codeg.app/zh/getting-started/configuration)。 + +## 👥 社区与支持 + +- **微信** — 扫描下方二维码加入我们的微信群,参与讨论、反馈与更新: -## 🔒 隐私与安全 + + + WeChat + -- 默认本地优先:解析、存储与项目操作都在本地完成 —— 仅在用户主动触发时才访问网络 -- Web 模式与服务器模式均使用基于令牌的身份认证 -- 支持系统代理,适配企业网络环境 +- **问题反馈** — 遇到 bug,或者缺了什么功能?[提交 issue](https://github.com/spacering-net/codeg/issues)。 +- **隐私** — 默认本地优先:解析、存储与项目操作都在你的机器上完成,Web 模式与服务器模式均使用令牌认证。详见 [隐私与安全](https://docs.codeg.app/zh/reference/privacy)。 +- **LinuxDO** — 感谢 [LinuxDO](https://linux.do) 社区的支持。 +- **支持我们** — [给仓库点个 Star](https://github.com/spacering-net/codeg),关注后续进展。 -详见 [隐私与安全](https://docs.codeg.app/zh/reference/privacy)。 +## 🤝 参与贡献 -## 👥 交流 +欢迎提交 issue 与 pull request。想自己构建 Codeg,可以从 [开发](https://docs.codeg.app/zh/reference/development) 与 [架构](https://docs.codeg.app/zh/reference/architecture) 开始。 -- 扫描下方二维码加入我们的微信群,参与讨论、反馈与更新 + + Codeg 贡献者 + -WeChat -WeChat +## ⭐ Star 历史 -- 感谢 [LinuxDO](https://linux.do) 社区的支持 + + + + + Star History Chart + + ## 🙏 鸣谢 @@ -221,6 +363,8 @@ Compose、预编译二进制、源码构建与就地升级见 [部署](https://d - [Superpowers](https://github.com/obra/superpowers):为 Codeg 的专家技能模块提供支持 - [OfficeCLI](https://github.com/iOfficeAI/OfficeCLI):为 Codeg 的 Office 文档工作流提供支持 - [scientific-agent-skills](https://github.com/K-Dense-AI/scientific-agent-skills):为 Codeg 的科学研究技能提供支持(MIT 许可的子集) +- [json-render](https://github.com/vercel-labs/json-render):为 Codeg 的界面渲染(卡片、表格与图表)提供支持 +- [cua-driver](https://github.com/trycua/cua):为 Codeg 的电脑操作提供支持 ## 📜 许可证 diff --git a/docs/readme/README.zh-TW.md b/docs/readme/README.zh-TW.md index 080d9b135c..53e45c80dc 100644 --- a/docs/readme/README.zh-TW.md +++ b/docs/readme/README.zh-TW.md @@ -1,32 +1,44 @@ -# Codeg - -[![Release](https://img.shields.io/github/v/release/xintaofei/codeg)](https://github.com/xintaofei/codeg/releases) -[![Docs](https://img.shields.io/badge/docs-docs.codeg.app-3451b2)](https://docs.codeg.app) -[![License](https://img.shields.io/github/license/xintaofei/codeg)](../../LICENSE) - -

- English | - 简体中文 | - 繁體中文 | - 日本語 | - 한국어 | - Español | - Deutsch | - Français | - Português | - العربية +

+ Codeg logo Codeg +

+ +

+ GitHub stars + Latest release + Total downloads + License + Documentation + Platforms: macOS, Windows, Linux, Docker, iOS, Android

-Codeg(Code Generation)是一個多智慧體編碼工作台:把所有 AI 編碼智慧體收進同一個地方 —— 並讓它們協同工作。 +

+ English · 简体中文 · 繁體中文 · 日本語 · 한국어 · Español · Deutsch · Français · Português · العربية +

-它將所有支援的智慧體 CLI 的工作階段聚合進一個可搜尋的工作區,讓主智慧體在同一個任務內委派給其它類型的子智慧體。不想守著做完的活,可以寫進待辦任務:每個任務待在自己的分支上無人看管地跑,做完了等你驗收才落地。Codeg 可作為桌面應用、獨立伺服器或 Docker 容器執行,還有原生 iOS 與 Android 用戶端,讓你離開電腦後也能接手正在跑的任務;內建十五個智慧體,你也可以自行註冊任何其它相容 ACP 的智慧體。 +

+ 多智慧體編碼工作台。
+ 把所有 AI 編碼智慧體收進同一個地方——並讓它們協同工作。 +

-![工作區](../images/workspace-light.png#gh-light-mode-only) -![工作區](../images/workspace-dark.png#gh-dark-mode-only) +

下載 Codeg · 說明文件

-## 📖 文件 +

+ + + Codeg 工作區:與智慧體的對話,旁邊是它的即時 diff 與專案檔案 + +

-**完整文件見 [docs.codeg.app](https://docs.codeg.app)** — [快速開始](https://docs.codeg.app/zh/getting-started/) · [指南](https://docs.codeg.app/zh/guide/) · [參考](https://docs.codeg.app/zh/reference/) + + + + + + + + + +
🧩 一個介面,容納所有智慧體
內建十九個智慧體,任何相容 ACP 的智慧體也都能加入——全部呈現為同一套結構化對話,而不是一個終端機。
🔎 工作階段自由流轉
匯入、搜尋、接續每個智慧體留在磁碟上的歷史,還能把它交給另一個智慧體接手。
🤝 智慧體協同工作
一個 @ 就能跨智慧體委派,也可以把待辦任務排進佇列,在各自的工作樹裡無人看管地執行。
🌍 無論你在哪裡工作
桌面應用、自架伺服器或 Docker,iPhone、iPad 與 Android——還有 Telegram、飛書或微信。
## 💖 贊助 @@ -45,13 +57,6 @@ Codeg(Code Generation)是一個多智慧體編碼工作台:把所有 AI 感謝合租巴士對本專案的贊助!合租巴士是一家可靠高效的 AI 中轉服務平台,主要提供 Codex、Claude Code 等主流模型的高穩定中轉能力,儲值比例透明(1:1),Codex 倍率補貼低至 0.08。官網進群送 5 美元體驗金。 - - - LQ router
- LQ router - - 感謝 LQ router 中轉站對本專案的贊助!LQ router 是一家專業的企業級 AI 中轉站,為企業與個人開發者提供穩定、高效、低成本的 AI 模型 API 接入服務。平台支援 GPT、Claude、Grok、Gemini 等主流模型,GPT Pro 倍率低至 0.1。官網進群贈送 1 美元體驗金。 - APIMart
@@ -72,10 +77,10 @@ Codeg(Code Generation)是一個多智慧體編碼工作台:把所有 AI - Fluxion AI
- Fluxion AI + Sidrune AI
+ Sidrune AI - 感謝 Fluxion AI 對本專案的贊助!Fluxion AI 透過一個統一的 API,提供快速、可靠、高性價比的 GPT、Claude、Gemini 等領先 AI 模型接入。新使用者透過我們的專屬連結註冊可獲得 3 美元 API 額度。 + 感謝 Sidrune AI 對本專案的贊助!Sidrune AI 透過一個 API 接入 GPT、Claude 等主流 AI 模型。新使用者透過我們的專屬連結註冊時使用優惠碼 SDRCODEG,即送 3 美元 API 額度。 @@ -88,132 +93,269 @@ Codeg(Code Generation)是一個多智慧體編碼工作台:把所有 AI > 想成為 Codeg 贊助商?[歡迎透過郵件與我們聯絡。](mailto:itpkcn@gmail.com) -## 🤖 支援的 Agent - -Claude Code · Codex · Gemini · OpenClaw · OpenCode · Cline · Hermes · CodeBuddy · Kimi Code · Pi · Grok · Cursor · DeepSeek Harness · Qoder · Google Antigravity - -其中大部分 Codeg 都能替你安裝、鎖定版本並更新。完整名單、各自的執行環境需求以及工作階段在磁碟上的存放位置,見 [支援的智慧體](https://docs.codeg.app/zh/guide/supported-agents)。 - -名單之外的呢?自己加就行。從公開的 ACP 註冊表裡挑一個,或者貼上它的 distribution JSON,Codeg 會安裝它、預檢它能否啟動,然後像對待內建智慧體一樣對待它——出現在選擇器裡,接受 `@` 委派與技能設定;即便這個智慧體本身不留下任何歷史,它的工作階段也會被記錄下來並可搜尋。→ [自訂智慧體](https://docs.codeg.app/zh/guide/custom-agents) - -## 🤝 多智慧體協作 - -多智慧體協作,從此只需一個按鍵:輸入 `@`,選取智慧體,送出。剩下的排程全交給 Codeg —— 它把每個被提及的智慧體拉起為獨立工作階段,交付任務,再把工作即時匯流回你正在進行的對話。提及兩個,它們就並肩開工:Claude Code 起草,Codex 同步審查。不必來回切換脈絡,也不用在多個終端機之間複製貼上。 +## ✨ 功能特色 -如果智慧體自己派出了子智慧體——Claude Code、Codex、Grok 與 OpenCode 都會——每個子智慧體都有一張邊跑邊填的卡片,而不是等結束後一次性出現。點開就能讀它自己的那個工作階段。 - -![在單一 Codeg 對話中將任務委派給子智慧體](../images/collaboration-light.gif#gh-light-mode-only) -![在單一 Codeg 對話中將任務委派給子智慧體](../images/collaboration-dark.gif#gh-dark-mode-only) - -## ✅ 待辦任務 - -不是每件事都得你盯著做完。寫下來就行——標題、說明、用哪個智慧體跑——Codeg 會給它**一份獨立的程式碼副本**:專案旁邊的一個 git 工作樹,跑在自己的分支上。幾個任務同時開工也互不干擾,更不會碰你手頭那份程式碼。可以約在今晚開始,也可以讓某個資料夾自己按平行上限一件件處理下去。 - -做完的任務不會自己合併。它會移到待驗收那一欄等著你:看 diff、退回去再做一輪,或者按通過——然後由智慧體來落地,先把基礎分支併進它的工作樹、在那裡解完衝突。之後 Codeg 不聽智慧體一面之詞,而是自己去核對 git:確認不了的合併會退回待驗收,而不是報一句成功。 - -![待辦任務看板:任務從「待辦」經「進行中」走到「完成」](../images/task-light.png#gh-light-mode-only) -![待辦任務看板:任務從「待辦」經「進行中」走到「完成」](../images/task-dark.png#gh-dark-mode-only) - -## 🪟 分割檢視 - -一條標籤列不總是夠用。右鍵點擊對話標籤,即可把檢視**向右**或**向下**拆分,想拆幾次就拆幾次:左右兩欄、上下三格,或者一整片網格。每個分組都是獨立的工作區——自己的標籤、自己的標題列、自己的新建對話按鈕——所以左邊這格可以讓 Claude Code 重構,右邊那格讓 Codex 審閱 diff。 - -把標籤從一個分組拖到另一個分組,它的工作階段在搬家途中也不會中斷;拖動兩個分組之間的分隔條,就能改變它們分配空間的方式。版面配置會按工作區記住,草稿也包含在內:重新打開 Codeg,拆分原樣回來,沒送出去的文字還在輸入框裡。 - -![把對話區拆分成標籤分組構成的網格](../images/split-light.gif#gh-light-mode-only) -![把對話區拆分成標籤分組構成的網格](../images/split-dark.gif#gh-dark-mode-only) - -## 📄 Office 文件 - -讓智慧體做一份簡報、一份報告或一張試算表,它交付的是真正的 `.pptx` / `.docx` / `.xlsx` —— 右側面板同時即時算繪。每一次改動都會自己落進預覽:投影片逐頁成形,表格逐步鋪開,數字落入儲存格。第 4 頁不滿意?下一則訊息說一聲就行 —— 智慧體原地修改同一個檔案,預覽隨即跟上。無需匯出,無需外部 Office 應用程式,全程不用離開 Codeg。 - -![智慧體編輯 Office 文件,旁邊是即時預覽](../images/office-light.png#gh-light-mode-only) -![智慧體編輯 Office 文件,旁邊是即時預覽](../images/office-dark.png#gh-dark-mode-only) - -## 💻 工作區 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +### 一個介面,容納所有智慧體 + +內建十九個智慧體,任何其他相容 ACP 的智慧體也能從公開註冊表或它的 distribution JSON 加入。Codeg 透過 Agent Client Protocol 與每一個智慧體溝通,所以它們拿到的都是同一套豐富的對話介面——工具卡片、即時 diff、計畫與權限請求——而不是一個得瞇著眼看的終端機。為智慧體啟用「介面渲染」後,它還能用可互動的卡片、表格與圖表來回覆。 -一個工作區,容納所有智慧體。無論正在幹活的是 Claude Code、Codex 還是 Cursor,它們都在同一個編輯器、同一套即時 diff、同一個 Git 用戶端裡工作,而產出的是你儲存庫裡真實的檔案,就在你眼前變化。還可以把別的目錄掛進來——共用的函式庫、隔壁的服務、文件儲存庫——檔案樹、搜尋與智慧體本身都把它們當作同一個工作區。 +[文件 →](https://docs.codeg.app/zh/guide/supported-agents) · [自訂智慧體 →](https://docs.codeg.app/zh/guide/custom-agents) · [介面渲染 →](https://docs.codeg.app/zh/guide/skills#cards-tables-and-charts-in-replies) -**工作階段**:把你已有的歷史一併接管 —— 所有已安裝智慧體的過往工作階段,一鍵匯入,並可從中斷處繼續。進來之後它們不再是彼此隔絕的孤島 —— `@` 提及一個舊工作階段,你正在對話的智慧體就能讀到它,哪怕那是另一個智慧體留下的,於是今天的 Codex 能接著上週 Claude Code 停下的地方往下做。無論一個工作階段累積得多長,開啟時都先呈現最近幾輪,其餘的隨你往上捲再逐段補齊。 + + + + 一個介面,容納所有智慧體 + +
+ +### 每個工作階段,都搜得到 + +Codeg 會讀取每個智慧體 CLI 留在磁碟上的歷史:一鍵匯入,全部可搜尋,任何工作階段都能從停下的地方繼續。`@` 提及一個舊工作階段,你正在對話的智慧體就能讀到它——哪怕那是另一個智慧體留下的。還能為工作階段加上彩色標籤,可全域通用,也可只屬於某個資料夾,並依標籤篩選側邊欄。 + +[文件 →](https://docs.codeg.app/zh/guide/aggregation) · [標籤 →](https://docs.codeg.app/zh/guide/workspace#tag-conversations) -**檔案**:智慧體的改動會以 diff 的形式,隨著落檔即時呈現在對話旁邊。任意檔案都能在帶語法高亮的真實編輯器裡開啟,用 `⌘L` 把整個檔案(或僅一段選取範圍)直接交給智慧體,Markdown、HTML、圖片與 Office 文件也都在同一面板內預覽。 + + + + 每個工作階段,都搜得到 + +
+ +### 多智慧體協作 + +輸入 `@`,選取智慧體,送出。每個被提及的智慧體都以獨立工作階段並肩開工,工作即時匯流回你的對話——Claude Code 起草,Codex 同步審查——子智慧體則以卡片呈現,邊跑邊填。 + +[文件 →](https://docs.codeg.app/zh/guide/multi-agent) -**Git**:一個完整的用戶端,而不只是狀態顯示 —— 在「變更」分頁裡直接提交(寫一句話,按 Enter 即可),旁邊就是拉取、抓取、推送與貯藏,歷史裡還標著每筆提交推出去了沒。新增分支、合併、變基、重設、與另一個分支比較,也能不切過去就更新或推送任一分支。遇到衝突會開啟三欄合併編輯器,逐塊採納或自己動手寫。而工作樹把平行開發壓縮成一個動作 —— 新分支、獨立目錄,外加一個紮根其中的新工作階段,於是一隊智慧體可以同時開發不同功能,誰也不碰誰的檔案。 + + + + 多智慧體協作 + +
+ +### 無人看管也能跑的待辦任務 + +把要做的事寫下來,就可以走開了。每個待辦任務都有自己的 git 工作樹與分支,可以立即開始或排程啟動,然後停在「待驗收」等你;你接受 diff 後,智慧體就會把它落地,而 Codeg 會先核對 git 才宣告完成。儲存庫面板還能替你新增:依標籤與作者挑選議題與拉取請求,定時掃描,或由 Webhook 觸發。 + +[文件 →](https://docs.codeg.app/zh/guide/tasks) · [自動處理 →](https://docs.codeg.app/zh/guide/repository#let-it-pick-items-up-by-itself) + + + + + 無人看管也能跑的待辦任務 + +
+ +### 無限畫布 + +在空間中鋪排你的工作:對話、檔案、終端機與便籤都成為畫板上的卡片,依資料夾與智慧體分組,讓多個智慧體並排執行、一目了然。 + +[文件 →](https://docs.codeg.app/zh/guide/canvas) + + + + + 無限畫布 + +
+ +### 桌面、伺服器、行動裝置與聊天軟體 + +Codeg 可以作為桌面應用、可用任何瀏覽器開啟的自架伺服器,或單一 Docker 容器來執行;桌面應用還能連上遠端伺服器,在獨立視窗中開啟遠端工作區。原生 iPhone、iPad 與 Android 用戶端——再加上 Telegram、飛書與微信頻道——讓智慧體觸手可及,而檔案與工作階段始終留在你自己掌控的機器上。 + +[文件 →](https://docs.codeg.app/zh/getting-started/deployment) · [遠端工作區 →](https://docs.codeg.app/zh/guide/workspace#desktop-and-browser) · [行動應用 →](https://docs.codeg.app/zh/getting-started/installation#mobile-apps) · [訊息頻道 →](https://docs.codeg.app/zh/guide/chat-channels) + + + + + 桌面、伺服器、行動裝置與聊天軟體 + +
+ +### Office 文件與科學研究 + +讓智慧體做一份簡報、一份報告或一張試算表,就能看著真正的 `.pptx`、`.docx` 或 `.xlsx` 在對話旁即時算繪,PDF 也能在內建閱讀器裡直接開啟。內建的科研技能——假設生成、實驗設計、統計、文獻檢索——可搭配任何智慧體使用。 + +[文件 →](https://docs.codeg.app/zh/guide/office) · [科學研究 →](https://docs.codeg.app/zh/guide/research) + + + + + Office 文件與科學研究 + +
+ +### 瀏覽器與電腦操作 + +在桌面應用中,連結會在檔案旁的內建瀏覽器裡開啟,還能切換成平板或手機尺寸:把頁面、元素、截圖或主控台錯誤交給智慧體,或讓它直接操作你分享的頁面。處於預覽階段的電腦操作,還能讓智慧體看見並操作你分享的視窗——而且一鍵就能停止。 + +[文件 →](https://docs.codeg.app/zh/guide/browser) · [電腦操作 →](https://docs.codeg.app/zh/guide/computer-use) + + + + + 瀏覽器與電腦操作 + +
+ +### 完整的工程閉環 + +編輯器、即時與並排 diff、附三欄合併編輯器的完整 Git 用戶端、一鍵工作樹、內建終端機與分割檢視——全都在智慧體旁邊,直接作用於你儲存庫裡的真實檔案。 + +[文件 →](https://docs.codeg.app/zh/guide/workspace) · [Git 與工作樹 →](https://docs.codeg.app/zh/guide/git) + + + + + 完整的工程閉環 + +
-**出問題的時候**:回合失敗了不會只說一句「出錯了」—— Claude Code 與 Codex 會說清是哪一類:連線問題、登入問題、額度用盡、請求被拒、服務異常 —— 並在輸入框下方留一條提示,只放真正幫得上忙的按鈕:重試、去登入,或者新建工作階段。智慧體自己在重試時顯示為琥珀色,回合正常結束後收斂成一行「已恢復」。輸入框下面那個連線狀態圖示也是個按鈕:點開就能看到這個工作階段的真實狀態,還有一個會恢復而不是重開的「重新連線」。 +**還有這些:** -## 📱 iPhone、iPad 與 Android +- **[儲存庫面板](https://docs.codeg.app/zh/guide/repository)** — GitHub、GitLab、Gitea 與 Forgejo 的議題、拉取請求、檢查項與合併;任何議題或 PR 都能轉成待辦任務 +- **[自動化](https://docs.codeg.app/zh/guide/automations)** — 把設定好的輸入框存下來,依 cron 排程或手動觸發,以無介面方式執行 +- **[Token 用量](https://docs.codeg.app/zh/guide/token-usage)** — 趨勢、快取命中率、活躍熱力圖、依資料夾、智慧體、模型與工作階段劃分的用量,以及按 API 標價估算的費用 +- **[分叉與插話](https://docs.codeg.app/zh/guide/workspace#follow-along-%E2%80%94-the-conversation)** — 在支援的智慧體上,從已完成的回覆分叉對話,或把訊息插入仍在進行中的回合 +- **[技能](https://docs.codeg.app/zh/guide/skills) 與 [MCP](https://docs.codeg.app/zh/guide/mcp)** — 依智慧體分別啟用的技能包、本機 MCP 掃描,以及註冊表搜尋與安裝 +- **[專案啟動器](https://docs.codeg.app/zh/guide/project-boot)** — 視覺化建立新專案,並即時預覽 +- **[通知與提醒](https://docs.codeg.app/zh/reference/settings/general#desktop-notifications)** — 回合結束或智慧體需要你時,發出桌面通知與提示音,並讓工作列按鈕閃爍、Dock 圖示跳動 +- **[外觀自訂](https://docs.codeg.app/zh/reference/settings/appearance)** — 十二套主題都能逐個色彩 token 重新調色,還有桌布、圓角、聊天區域寬度、自訂 CSS 與桌面寵物——介面支援十種語言 +- **[備份與同步](https://docs.codeg.app/zh/reference/settings/system#backup-restore)** — 加密備份,以及透過檔案或你自己的 WebDAV 伺服器在多台機器之間同步設定 +- **[URL Scheme](../../docs/url-scheme.md)** — 用 `codeg://session/` 從其他應用程式開啟對話(桌面端) +- **[命令列](../../docs/cli.md)** — 用 `codeg-cli` 在腳本或 CI 工作中把提示詞交給正在執行的 Codeg(桌面端或伺服器)執行,輸出回覆或 JSON 事件 +- **還有更多** — 幾乎每個版本都會加入新東西;完整清單見 [發行說明](https://github.com/spacering-net/codeg/releases) -離開電腦,工作也不必停下。原生 iOS 與 Android 用戶端連接的就是你自己在跑的那個 Codeg —— 桌面應用的 **Web 服務**,或者你自己的 `codeg-server` —— 在手機上發起工作階段、看著回覆與工具呼叫即時流回、處理權限審核、瀏覽專案與分支。手機上不會多出任何東西:檔案、智慧體 CLI 與工作階段仍留在執行 Codeg 的那台機器上,存取權杖則交由 iOS Keychain 或 Android Keystore 保管。兩個用戶端皆已開源([iOS](https://github.com/xintaofei/codeg-ios)、[Android](https://github.com/xintaofei/codeg-android));三個步驟即可完成配對,見 [行動應用](https://docs.codeg.app/zh/getting-started/installation#mobile-apps)。 +## 🤖 支援的智慧體 -| iPhone 與 iPad | Android | -| :---: | :---: | -| 在 Codeg iOS 用戶端中發起工作階段 | 智慧體回覆即時流入 Codeg Android 用戶端 | +Codeg 透過 [Agent Client Protocol](https://agentclientprotocol.com) 與每個智慧體溝通,所以每一個都能用上同一套結構化介面。內建十九個,其中大部分 Codeg 都能替你安裝、鎖定版本並更新: -## ✨ 核心亮點 +

+ Claude Code   + Codex   + Gemini CLI   + OpenClaw   + OpenCode   + Cline   + Hermes Agent   + CodeBuddy   + Kimi Code   + Pi   + Grok   + Cursor   + DeepSeek Harness   + Qoder   + Google Antigravity   + Kiro CLI   + ZCode   + TRAE CLI   + Command Code   + + 任何 ACP 智慧體 +

-- **[對話聚合](https://docs.codeg.app/zh/guide/aggregation)** — 把所有支援的智慧體的工作階段匯入統一、可搜尋的工作區,並從上次中斷處繼續 -- **[多智慧體協作](https://docs.codeg.app/zh/guide/multi-agent)** — `@` 提及任一智慧體即可委派:不同類型的子智慧體各自作為獨立工作階段,在同一個任務內平行執行 -- **[待辦任務](https://docs.codeg.app/zh/guide/tasks)** — 把要做的事寫下來,智慧體一件件做完;每個任務在自己的工作樹裡跑,只有你驗收之後才會併進你的分支 -- **[自訂智慧體](https://docs.codeg.app/zh/guide/custom-agents)** — 從公開註冊表或 distribution JSON 註冊任何其它相容 ACP 的智慧體;Codeg 負責安裝、記錄歷史,並像內建智慧體一樣對待它 -- **[工作區](https://docs.codeg.app/zh/guide/workspace)** — 智慧體旁邊就是完整的工程閉環:檔案樹、編輯器與 diff、Git 變更、提交、內建終端機,以及[掛進同一個工作區的多個資料夾](https://docs.codeg.app/zh/guide/workspace#work-across-several-folders) -- **[分割檢視](https://docs.codeg.app/zh/guide/workspace#split-the-conversation-view-into-groups)** — 把對話區拆成任意多個標籤分組,在分組之間拖動標籤與分隔條,重啟後版面配置(含草稿)原樣回來 -- **[Git 與 Worktree](https://docs.codeg.app/zh/guide/git)** — 檢視並提交變更、管理 Git 遠端帳號,用內建 `git worktree` 流程平行開發 -- **[Token 用量](https://docs.codeg.app/zh/guide/token-usage)** — 狀態列計數器背後是一整份報告:趨勢與快取命中率、活躍熱力圖,以及依資料夾、智慧體、模型與工作階段的分項 -- **[訊息渠道](https://docs.codeg.app/zh/guide/chat-channels)** — 在 Telegram、飛書、微信裡直接驅動智慧體:建立任務、核准權限、即時接收進展 -- **[自動化](https://docs.codeg.app/zh/guide/automations)** — 把設定好的輸入框存成可重複使用的自動化任務,依 cron 排程或手動觸發、無介面執行——可以開一個工作階段,也可以留一條待辦任務等你驗收 -- **[Office 文件](https://docs.codeg.app/zh/guide/office)** — 透過內建 `officecli` 建立、分析、校對與編輯 `.docx` / `.xlsx` / `.pptx`,並在分頁內即時預覽 -- **[科學研究](https://docs.codeg.app/zh/guide/research)** — 內建科研技能(假設生成、實驗設計、統計、視覺化、批判性評估、文獻檢索),任一智慧體皆可呼叫 -- **[專案啟動器](https://docs.codeg.app/zh/guide/project-boot)** — 視覺化建立新專案並即時預覽,建立完直接在工作區開啟 -- **[MCP](https://docs.codeg.app/zh/guide/mcp) & [技能](https://docs.codeg.app/zh/guide/skills)** — 本機伺服器掃描 + 市集搜尋/安裝,技能支援全域與專案層級管理 -- **[外觀自訂](https://docs.codeg.app/zh/reference/settings/appearance)** — 十二套主題都能逐個色彩 token 重新調色、全域設定圓角大小、以 shadcn JSON 匯入匯出主題,或者乾脆自己寫 CSS -- **[桌面端、伺服器與 Docker](https://docs.codeg.app/zh/getting-started/deployment)** — 原生桌面應用、可用瀏覽器存取的獨立 `codeg-server`,或者 `docker compose up` -- **[iPhone、iPad 與 Android](https://docs.codeg.app/zh/getting-started/installation#mobile-apps)** — 原生行動用戶端連接你的桌面端或伺服器:隨時隨地發起工作階段、接收串流回覆、核准權限、瀏覽專案 +名單之外的呢?從公開的 ACP 註冊表裡挑一個,或貼上它的 distribution JSON——Codeg 會安裝它、預檢它能否啟動,然後像對待內建智慧體一樣對待它。各智慧體的執行環境需求以及工作階段的存放位置,見 [支援的智慧體](https://docs.codeg.app/zh/guide/supported-agents)。 -## 📦 安裝與執行 +## 📦 安裝 -**桌面端** — 從 [Releases](https://github.com/xintaofei/codeg/releases) 下載 macOS、Windows 或 Linux 的安裝檔,再依 [安裝](https://docs.codeg.app/zh/getting-started/installation) 操作。 +**桌面端** — 從 [Releases](https://github.com/spacering-net/codeg/releases/latest) 下載 macOS、Windows 或 Linux 的安裝檔,再依 [安裝](https://docs.codeg.app/zh/getting-started/installation) 操作。 **伺服器** — 無介面執行 Codeg,用任意瀏覽器存取。Linux 或 macOS: ```bash -curl -fsSL https://raw.githubusercontent.com/xintaofei/codeg/main/install.sh | bash +curl -fsSL https://raw.githubusercontent.com/spacering-net/codeg/main/install.sh | bash CODEG_STATIC_DIR=/usr/local/share/codeg/web codeg-server ``` Windows(PowerShell): ```powershell -irm https://raw.githubusercontent.com/xintaofei/codeg/main/install.ps1 | iex -$env:CODEG_STATIC_DIR="$env:LOCALAPPDATA\codeg\web"; codeg-server +irm https://raw.githubusercontent.com/spacering-net/codeg/main/install.ps1 | iex +$env:CODEG_STATIC_DIR="$env:LOCALAPPDATA\codeg-server\web"; codeg-server ``` **Docker** — 同一個伺服器,裝進一個容器: ```bash -docker run -d -p 3080:3080 -v codeg-data:/data ghcr.io/xintaofei/codeg:latest +docker run -d -p 3080:3080 -v codeg-data:/data ghcr.io/spacering-net/codeg:latest ``` +無論哪種方式,都在瀏覽器中開啟 `http://:3080`,輸入伺服器啟動時印出的存取權杖(容器可用 `docker logs` 查看);也可以用 `CODEG_TOKEN` 自行指定。 + **行動裝置** — 安裝 [iOS 應用](https://apps.apple.com/app/codeg-client/id6785199071) 或 [Android APK](https://github.com/xintaofei/codeg-android/releases/latest),再把它指向桌面應用的 **Web 服務**或你自己的 `codeg-server`:填位址、填權杖,完成。配對步驟見 [行動應用](https://docs.codeg.app/zh/getting-started/installation#mobile-apps)。 -Compose、預編譯二進位檔、原始碼建置與就地升級見 [部署](https://docs.codeg.app/zh/getting-started/deployment);環境變數見 [設定](https://docs.codeg.app/zh/getting-started/configuration)。想建置 Codeg 本身:[開發](https://docs.codeg.app/zh/reference/development) 與 [架構](https://docs.codeg.app/zh/reference/architecture)。 +Compose、預編譯二進位檔、原始碼建置與就地升級見 [部署](https://docs.codeg.app/zh/getting-started/deployment);環境變數見 [設定](https://docs.codeg.app/zh/getting-started/configuration)。 + +## 👥 社群與支援 + +- **微信** — 掃描下方 QR Code 加入我們的微信群,參與討論、回饋與更新: -## 🔒 隱私與安全 + + + WeChat + -- 預設本機優先:解析、儲存與專案操作都在本機完成 —— 僅在使用者主動觸發時才存取網路 -- Web 模式與伺服器模式皆使用基於權杖的身分驗證 -- 支援系統代理,適配企業網路環境 +- **問題回報** — 發現 bug,或是缺了什麼功能?[開一個 issue](https://github.com/spacering-net/codeg/issues)。 +- **隱私** — 本機優先:解析、儲存與專案操作都留在你的機器上,Web 模式與伺服器模式皆以權杖驗證把關。詳見 [隱私與安全](https://docs.codeg.app/zh/reference/privacy)。 +- **LinuxDO** — 感謝 [LinuxDO](https://linux.do) 社群的支持。 +- **支持我們** — [幫儲存庫點個 Star](https://github.com/spacering-net/codeg),追蹤後續進展。 -詳見 [隱私與安全](https://docs.codeg.app/zh/reference/privacy)。 +## 🤝 參與貢獻 -## 👥 交流 +歡迎提交 issue 與 pull request。想自己建置 Codeg,可以從 [開發](https://docs.codeg.app/zh/reference/development) 與 [架構](https://docs.codeg.app/zh/reference/architecture) 開始。 -- 掃描下方 QR Code 加入我們的微信群,參與討論、回饋與更新 + + Codeg 貢獻者 + -WeChat -WeChat +## ⭐ Star 歷史 -- 感謝 [LinuxDO](https://linux.do) 社群的支持 + + + + + Star History Chart + + ## 🙏 致謝 @@ -221,6 +363,8 @@ Compose、預編譯二進位檔、原始碼建置與就地升級見 [部署](htt - [Superpowers](https://github.com/obra/superpowers):為 Codeg 的專家技能模組提供支援 - [OfficeCLI](https://github.com/iOfficeAI/OfficeCLI):為 Codeg 的 Office 文件工作流程提供支援 - [scientific-agent-skills](https://github.com/K-Dense-AI/scientific-agent-skills):為 Codeg 的科學研究技能提供支援(MIT 授權子集) +- [json-render](https://github.com/vercel-labs/json-render):為 Codeg 的介面渲染(卡片、表格與圖表)提供支援 +- [cua-driver](https://github.com/trycua/cua):為 Codeg 的電腦操作提供支援 ## 📜 授權 diff --git a/docs/url-scheme.md b/docs/url-scheme.md index e4c91c9802..0ae8d3e672 100644 --- a/docs/url-scheme.md +++ b/docs/url-scheme.md @@ -5,8 +5,8 @@ can bring Codeg forward and open a specific conversation. This is the OS handler for the same `codeg://session/` form already used as an in-app markdown mention. Mention badges (`codeg://agent/…`, -`codeg://commit/…`, `codeg://embedded/…`) stay in-process and are **not** -OS navigation. +`codeg://assistant/…`, `codeg://commit/…`, `codeg://embedded/…`) stay +in-process and are **not** OS navigation. ## Forms diff --git a/eslint.config.mjs b/eslint.config.mjs index 81b702dfc9..20b0430b7f 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -40,6 +40,9 @@ const eslintConfig = defineConfig([ "src-tauri/target/**", "src-tauri/experts/**", "public/vs/**", + // PDF.js's worker and wasm-decoder fallbacks, copied out of + // node_modules by postinstall like Monaco's above. + "public/pdfjs/**", // Gitignored scratch space for planning/review docs and one-off probe // scripts. Prettier already skips it — its `--ignore-path` defaults to // `.gitignore` — but flat config has no such default, so without this diff --git a/install.ps1 b/install.ps1 index ef279135f8..965697f273 100644 --- a/install.ps1 +++ b/install.ps1 @@ -1,26 +1,75 @@ # # Codeg Server installer for Windows # Usage: -# irm https://raw.githubusercontent.com/xintaofei/codeg/main/install.ps1 | iex +# irm https://raw.githubusercontent.com/spacering-net/codeg/main/install.ps1 | iex # .\install.ps1 -Version v0.5.0 # param( [string]$Version = "", - [string]$InstallDir = "$env:LOCALAPPDATA\codeg", + [string]$InstallDir = "", [switch]$NoCleanup ) $ErrorActionPreference = "Stop" -$Repo = "xintaofei/codeg" +$Repo = "spacering-net/codeg" $Artifact = "codeg-server-windows-x64" +# Where the server goes when no -InstallDir is given. Not +# $env:LOCALAPPDATA\codeg: the codeg desktop app installs itself there for +# one user, and it ships codeg-mcp.exe, codeg-computer-helper.exe and web\ +# of its own, which each installer would replace with its own. Earlier +# versions of this script installed the server there all the same. A server +# they left there stays — unless the desktop app is there too: then it moves +# here (see "Move out of the desktop app's folder" below). +$DefaultDir = Join-Path $env:LOCALAPPDATA "codeg-server" +$LegacyDir = Join-Path $env:LOCALAPPDATA "codeg" +$MoveFrom = "" +if (-not $InstallDir) { + $InstallDir = $DefaultDir + if (Test-Path -LiteralPath (Join-Path $LegacyDir "codeg-server.exe") -PathType Leaf) { + if (Test-Path -LiteralPath (Join-Path $LegacyDir "codeg.exe") -PathType Leaf) { + $MoveFrom = $LegacyDir + } else { + $InstallDir = $LegacyDir + } + } +} +# Absolute, from where PowerShell is — as its own file commands read a +# relative path — not from the process's directory, which .NET's path +# functions use and which PowerShell does not move. +$InstallDir = $ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath($InstallDir) +# A desktop app folder's bin\ is the desktop's too: it holds the copy of its +# codeg-cli.exe that goes on PATH. +function Test-DesktopBinDir([string]$Dir) { + try { + $Dir = $Dir.TrimEnd('\', '/') + if (-not $Dir -or (Split-Path -Leaf $Dir) -ne "bin") { return $false } + $parent = Split-Path -Parent $Dir + return [bool]($parent -and (Test-Path -LiteralPath (Join-Path $parent "codeg.exe") -PathType Leaf)) + } catch { + # A PATH entry no path command can read is no desktop app's. + return $false + } +} +if (Test-Path -LiteralPath (Join-Path $InstallDir "codeg.exe") -PathType Leaf) { + Write-Error "$InstallDir holds the codeg desktop app, whose codeg-mcp.exe, codeg-computer-helper.exe, codeg-cli.exe and web\ the server's would replace. Install codeg-server in a folder of its own (by default $DefaultDir)." + exit 1 +} +if (Test-DesktopBinDir $InstallDir) { + Write-Error "$InstallDir is the codeg desktop app's bin\ folder, whose codeg-cli.exe the server's would replace. Install codeg-server in a folder of its own (by default $DefaultDir)." + exit 1 +} + # Names of binaries this installer manages. codeg-server is the user-facing # entry point; codeg-mcp is the stdio MCP companion that the server's ACP # layer spawns per session for delegation. Both must live in the same # directory — `locate_codeg_mcp_binary()` in src-tauri/src/acp/connection.rs # resolves the companion as a sibling of the running server executable. $ManagedBins = @("codeg-server", "codeg-mcp") +# Looked for on PATH as well: the two above, and codeg-cli, the command-line +# client the release ships beside them (older releases do not). +$ScannedBins = @("codeg-server", "codeg-mcp", "codeg-cli") # Stale codeg-server / codeg-mcp binaries elsewhere in PATH are removed by # default so the user's `codeg-server` command always runs the freshly @@ -40,6 +89,23 @@ function Get-CanonicalPath([string]$Path) { } } +# Whether two PATH entries name the same folder: compared expanded, without a +# trailing backslash, ignoring case — not as substrings, since +# ...\Local\codeg is a prefix of ...\Local\codeg-server. +function Test-SameDir([string]$A, [string]$B) { + $a = [Environment]::ExpandEnvironmentVariables($A).TrimEnd('\') + $b = [Environment]::ExpandEnvironmentVariables($B).TrimEnd('\') + return $a -eq $b +} + +function Test-PathHasDir([string]$PathValue, [string]$Dir) { + if (-not $PathValue) { return $false } + foreach ($entry in $PathValue.Split(';')) { + if ($entry -and (Test-SameDir $entry $Dir)) { return $true } + } + return $false +} + function Read-BinVersion([string]$BinPath) { if (-not (Test-Path -LiteralPath $BinPath)) { return "" } $stdout = Join-Path $env:TEMP ("codeg-ver-" + [Guid]::NewGuid().ToString() + ".txt") @@ -92,6 +158,8 @@ $DestBinReal = Get-CanonicalPath $DestBin $InstallDirReal = Get-CanonicalPath $InstallDir $PathConflicts = @() +# Earlier-on-PATH files that belong to the desktop app: reported, never removed. +$DesktopShadows = @() $seenReal = @{} $pathDirs = @() if ($env:Path) { $pathDirs = $env:Path.Split(';') } @@ -107,13 +175,22 @@ foreach ($dir in $pathDirs) { if ($dirReal -eq $InstallDirReal) { break } - foreach ($name in $ManagedBins) { + # In the desktop app's folder only a codeg-server.exe is a server's + # leftover: the codeg-mcp.exe and codeg-cli.exe there are the desktop + # app's own, and so is everything in its bin\ folder. + $desktopDir = Test-Path -LiteralPath (Join-Path $dir "codeg.exe") -PathType Leaf + $desktopBin = Test-DesktopBinDir $dir + foreach ($name in $ScannedBins) { foreach ($leaf in @("$name.exe", $name)) { $bin = Join-Path $dir $leaf if (Test-Path -LiteralPath $bin -PathType Leaf) { $real = Get-CanonicalPath $bin if ($seenReal.ContainsKey($real)) { continue } $seenReal[$real] = $true + if ($desktopBin -or ($desktopDir -and $name -ne "codeg-server")) { + if ($name -eq "codeg-cli") { $DesktopShadows += $bin } + continue + } $PathConflicts += $bin } } @@ -161,6 +238,11 @@ if ($PathConflicts.Count -gt 0) { Write-Host "" Write-Host "Found other codeg-server binaries in PATH that may shadow ${DestBin}:" foreach ($c in $PathConflicts) { + if ((Split-Path -Leaf $c) -like "codeg-cli*") { + # Only removed if this release ships a codeg-cli (known once extracted). + Write-Host " - $c (removed if this release includes codeg-cli)" + continue + } $cv = Read-BinVersion $c if ($cv) { Write-Host " - $c (version $cv)" @@ -182,16 +264,62 @@ if ($PathConflicts.Count -gt 0) { # codeg-mcp.exe is the stdio MCP companion spawned per ACP session. # On Windows, Copy-Item -Force fails with a sharing violation if the # target .exe is currently running (the OS holds an exclusive write -# lock on executable images). Stop both binaries before overwriting. +# lock on executable images), and Remove-Item fails the same way. Stop +# what runs from the files this script replaces or removes — and only +# that: the desktop app runs a codeg-mcp.exe and a codeg-computer-helper.exe +# of its own, from its own folder. A process whose path cannot be read +# (another user's, an elevated one) is left alone; Stop-Process could not +# stop it either. + +$Changing = @( + (Join-Path $InstallDir "codeg-server.exe"), + (Join-Path $InstallDir "codeg-mcp.exe"), + (Join-Path $InstallDir "codeg-computer-helper.exe") +) +if ($Cleanup) { + # A codeg-cli is never stopped for this: a run in progress is the user's. + # One in use is moved aside instead (see the install below). + $Changing += @($PathConflicts | Where-Object { (Split-Path -Leaf $_) -notlike "codeg-cli*" }) + if ($MoveFrom) { $Changing += (Join-Path $MoveFrom "codeg-server.exe") } +} +$Changing = @($Changing | ForEach-Object { + [System.IO.Path]::GetFullPath($ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath($_)) +}) + +# The processes named $Name that run one of the files in $Changing. Their +# paths come from CIM, which reads every process's, whatever this +# PowerShell's bitness: a 32-bit one cannot read a 64-bit process's own +# `Path`. Where CIM cannot be had, Get-Process reads what it can. On some +# machines a WMI query never returns, so CIM gets a time limit, and once it +# has failed it is not asked again. +$script:CimWorks = $true +function Get-RunningFrom([string]$Name) { + if ($script:CimWorks) { + try { + $running = @(Get-CimInstance Win32_Process -Filter "Name = '$Name.exe'" -OperationTimeoutSec 15 -ErrorAction Stop | + Where-Object { + $_.ExecutablePath -and ($Changing -contains [System.IO.Path]::GetFullPath($_.ExecutablePath)) + }) + return @($running | ForEach-Object { Get-Process -Id $_.ProcessId -ErrorAction SilentlyContinue }) + } catch { + $script:CimWorks = $false + } + } + return @(Get-Process -Name $Name -ErrorAction SilentlyContinue | Where-Object { + $path = $null + try { $path = $_.Path } catch {} + $path -and ($Changing -contains [System.IO.Path]::GetFullPath($path)) + }) +} -$ServerProcesses = Get-Process -Name "codeg-server" -ErrorAction SilentlyContinue +$ServerProcesses = Get-RunningFrom "codeg-server" if ($ServerProcesses) { Write-Host "Stopping running codeg-server process(es)..." $WasRunning = $true $ServerProcesses | Stop-Process -Force Start-Sleep -Seconds 2 # Verify stopped - $StillRunning = Get-Process -Name "codeg-server" -ErrorAction SilentlyContinue + $StillRunning = Get-RunningFrom "codeg-server" if ($StillRunning) { $StillRunning | Stop-Process -Force Start-Sleep -Seconds 1 @@ -199,12 +327,24 @@ if ($ServerProcesses) { Write-Host "codeg-server stopped." } -$McpProcesses = Get-Process -Name "codeg-mcp" -ErrorAction SilentlyContinue +# codeg-computer-helper.exe exits with the codeg-server that started it, but +# not necessarily before the copy below; it holds its file the same way. +# Stopped with the cua-driver it runs (`taskkill /T`). +$HelperProcesses = Get-RunningFrom "codeg-computer-helper" +if ($HelperProcesses) { + Write-Host "Stopping running codeg-computer-helper process(es)..." + foreach ($p in $HelperProcesses) { + try { & taskkill.exe /F /T /PID $p.Id 2>$null | Out-Null } catch {} + } + Start-Sleep -Seconds 1 +} + +$McpProcesses = Get-RunningFrom "codeg-mcp" if ($McpProcesses) { Write-Host "Stopping running codeg-mcp companion process(es)..." $McpProcesses | Stop-Process -Force Start-Sleep -Seconds 1 - $StillRunning = Get-Process -Name "codeg-mcp" -ErrorAction SilentlyContinue + $StillRunning = Get-RunningFrom "codeg-mcp" if ($StillRunning) { $StillRunning | Stop-Process -Force Start-Sleep -Seconds 1 @@ -217,6 +357,9 @@ $Url = "https://github.com/$Repo/releases/download/$Version/$Artifact.zip" $TmpDir = Join-Path $env:TEMP "codeg-install-$(Get-Random)" New-Item -ItemType Directory -Force -Path $TmpDir | Out-Null $ZipPath = Join-Path $TmpDir "$Artifact.zip" +# Two paths per Join-Path: Windows PowerShell 5.1 takes no third (it has no +# -AdditionalChildPath), and under "Stop" a third aborts the script. +$ArtifactDir = Join-Path $TmpDir $Artifact Write-Host "Downloading $Url..." try { @@ -238,16 +381,71 @@ Expand-Archive -Path $ZipPath -DestinationPath $TmpDir -Force New-Item -ItemType Directory -Force -Path $InstallDir | Out-Null foreach ($name in $ManagedBins) { - $src = Join-Path $TmpDir $Artifact "$name.exe" + $src = Join-Path $ArtifactDir "$name.exe" if (-not (Test-Path $src)) { - Write-Error "$name.exe not found in archive $Artifact.zip — release is incomplete, please report." + Write-Error "$name.exe not found in archive $Artifact.zip: the release is incomplete, please report it." exit 1 } } -foreach ($name in $ManagedBins) { - $src = Join-Path $TmpDir $Artifact "$name.exe" - $dst = Join-Path $InstallDir "$name.exe" - Copy-Item $src -Destination $dst -Force +# codeg-cli.exe: the command-line client (`codeg-cli run …`), installed when +# the release ships it. A running exe cannot be replaced, but it can be +# renamed: the current one is moved aside to `codeg-cli.exe.old-