AI News HubLIVE
站内改写6 分钟阅读

待翻译:Agentsview – Browse, search, and track costs across all your AI coding agents

AI 服务暂时不可用,以下为来源摘要,待恢复后补全翻译:Uh oh! There was an error while loading. Please reload this page. Notifications You must be signed in to change notification settings Fork 572 Star 4.7k BranchesTags Open more actions menu Folders and files NameName Las…

来源Hacker News AI作者: gilad

AI 服务暂时不可用,以下为来源正文,待恢复后补全翻译。

Uh oh! There was an error while loading. Please reload this page. Notifications You must be signed in to change notification settings Fork 572 Star 4.7k BranchesTags Open more actions menu Folders and files NameName Last commit message Last commit date Latest commit History 1,003 Commits 1,003 Commits .agents/skills .agents/skills .claude/skills .claude/skills .github .github .impeccable/live .impeccable/live cmd cmd desktop desktop docs docs frontend frontend internal internal scripts scripts support/launchd support/launchd testdata testdata .air.toml .air.toml .custom-gcl.yml .custom-gcl.yml .dockerignore .dockerignore .gitattributes .gitattributes .gitignore .gitignore .golangci.nilaway.yml .golangci.nilaway.yml .golangci.yml .golangci.yml .kata.toml .kata.toml .roborev.toml .roborev.toml AGENTS.md AGENTS.md CLAUDE.md CLAUDE.md DESIGN.md DESIGN.md Dockerfile Dockerfile LICENSE LICENSE Makefile Makefile PRODUCT.md PRODUCT.md README.md README.md SECURITY.md SECURITY.md build_script_test.go build_script_test.go desktop_icon_test.go desktop_icon_test.go desktop_sidecar_test.go desktop_sidecar_test.go docker-compose.prod.yaml docker-compose.prod.yaml docker-compose.test.yml docker-compose.test.yml docker-entrypoint.sh docker-entrypoint.sh go.mod go.mod go.sum go.sum prek.toml prek.toml renovate.json renovate.json start-agentsview-dev.command start-agentsview-dev.command start-agentsview.command start-agentsview.command Repository files navigation Browse, search, and track costs across all your AI coding agents. One binary, no accounts, everything local. Install # macOS / Linux curl -fsSL https://agentsview.io/install.sh | bash # Windows powershell -ExecutionPolicy ByPass -c "irm https://agentsview.io/install.ps1 | iex" Or download the desktop app (macOS / Windows) from GitHub Releases or via homebrew: brew install --cask agentsview Or run the published Docker image: docker run --rm -p 127.0.0.1:8080:8080 \ -v agentsview-data:/data \ -v "$HOME/.claude/projects:/agents/claude:ro" \ -v "$HOME/.forge:/agents/forge:ro" \ -e CLAUDE_PROJECTS_DIR=/agents/claude \ -e FORGE_DIR=/agents/forge \ ghcr.io/kenn-io/agentsview:latest Quick Start agentsview serve # start the server in the foreground agentsview daemon start # start the writable SQLite daemon agentsview daemon status # show daemon status agentsview daemon restart # restart from current configuration agentsview daemon stop # stop the writable daemon agentsview session list # read from the daemon if warm, otherwise SQLite agentsview usage daily # print daily cost summary On first run, agentsview discovers sessions from every supported agent on your machine, syncs them into a local SQLite database, and serves a web UI at http://127.0.0.1:8080. For Devin CLI, point DEVIN_DIR or devin_dirs at the local root that contains cli/ — for example ~/Library/Application Support/devin on macOS, ~/.local/share/devin on Linux, or a redacted path like .../Application Support/devin. AgentsView reads session data under /cli/... and intentionally ignores copied config or OAuth paths. Do not paste tokens, OAuth files, or other secrets into bug reports. Claude and Codex sources can also be configured as s3:// roots, so a central AgentsView instance can read sessions that other machines push to S3-compatible object storage. Add those roots to claude_project_dirs or codex_sessions_dirs; AgentsView lists object metadata and only downloads changed sessions during sync. S3 change detection uses size, modified time, and available object fingerprints such as ETag, version ID, or checksums. The desktop app and freshness-sensitive CLI commands share a detached local daemon. Read-only CLI commands attach to it when it is already running, but fall back to direct read-only SQLite on a cold archive so one-off scripts stay fast. Commands that need fresh data or need to write, such as sync, usage, token-use, pg push, and duckdb push, auto-start the daemon when needed. Use agentsview daemon start when you want to start the writable SQLite daemon explicitly. It loads the normal effective configuration from config.toml and supported environment variables; daemon start and daemon restart accept no serve-specific flags. Background daemons self-exit after an idle period unless a client request or daemon-owned job is active. The existing agentsview serve --background, agentsview serve status, and agentsview serve stop commands remain available. Use serve --background when a one-off daemon needs a serve-only flag, such as --no-sync or an unauthenticated non-loopback --host override. Remote / forwarded access agentsview binds to loopback and validates the request Host header to guard against DNS-rebinding attacks. When you reach it through SSH port-forwarding, a reverse proxy, or a remote dev environment (exe.dev, Codespaces, Coder, WSL2), the browser sends a Host that the server does not recognize, so API requests such as /api/v1/settings are rejected with 403 Forbidden. To fix this, restart the server with --public-url set to the exact origin you open in the browser: # Browser opens http://127.0.0.1:18080 via ssh -L 18080:127.0.0.1:8080 host agentsview serve --public-url http://127.0.0.1:18080 # Browser opens a forwarded hostname agentsview serve --public-url https://your-workspace.exe.dev Use --public-origin (repeatable or comma-separated) to trust additional browser origins. If you expose the UI beyond loopback, also enable --require-auth. Docker The container image defaults to local agentsview serve. Set PG_SERVE=1 to switch the startup command to agentsview pg serve instead. docker-compose.prod.yaml is included as a production example: docker compose -f docker-compose.prod.yaml up -d The included compose file persists the agentsview data directory in a named volume and mounts Claude, Codex, Forge, and OpenCode session roots read-only. The container runs as root, so prefer a named volume for /data over a host bind mount; if you do bind-mount, pre-create the directory with the desired ownership to avoid root-owned files in your home directory. The examples publish the UI on loopback only (127.0.0.1). If you need to expose it beyond localhost, enable --require-auth and publish the port intentionally. Important: a containerized agentsview instance can only discover agent sessions from directories you explicitly mount into the container. If you do not mount an agent's session directory and point the matching env var at it, that agent will not appear in the UI. Example PostgreSQL-backed startup: docker run --rm -p 127.0.0.1:8080:8080 \ -e PG_SERVE=1 \ -e AGENTSVIEW_PG_URL='postgres://user:[email protected]:5432/agentsview?sslmode=require' \ ghcr.io/kenn-io/agentsview:latest Example DuckDB mirror startup: # Populate /data/sessions.duckdb from the mounted SQLite archive. docker run --rm \ -v agentsview-data:/data \ -v "$HOME/.claude/projects:/agents/claude:ro" \ -e CLAUDE_PROJECTS_DIR=/agents/claude \ ghcr.io/kenn-io/agentsview:latest duckdb push --full # Serve the populated mirror read-only. docker run --rm -p 127.0.0.1:8080:8080 \ -v agentsview-data:/data \ ghcr.io/kenn-io/agentsview:latest duckdb serve Example Quack startup: # Expose the local DuckDB mirror over Quack from the host/container. QUACK_TOKEN="$(openssl rand -base64 32)" docker run --rm -p 127.0.0.1:9494:9494 \ -v agentsview-data:/data \ ghcr.io/kenn-io/agentsview:latest \ duckdb quack serve \ --bind quack:0.0.0.0:9494 \ --token "$QUACK_TOKEN" \ --allow-insecure # Serve the web UI from a remote Quack endpoint. # The client url uses the native quack:HOST:PORT form; the Quack extension # does not accept quack:http:// or quack:https:// urls. A non-loopback host # needs --allow-insecure. docker run --rm -p 127.0.0.1:8080:8080 \ -e AGENTSVIEW_DUCKDB_URL='quack:duckdb.example.com:9494' \ -e AGENTSVIEW_DUCKDB_TOKEN="$QUACK_TOKEN" \ ghcr.io/kenn-io/agentsview:latest duckdb serve --allow-insecure Keep Quack on loopback or behind TLS. Plain HTTP Quack on a non-loopback bind requires --allow-insecure and should only be used behind a trusted tunnel or reverse proxy. Token Usage and Cost Tracking agentsview usage is a fast, local replacement for ccusage and similar tools. It tracks token consumption and compute costs across all your coding agents -- not just Claude Code. Because session data is already indexed in SQLite, queries are over 100x faster than tools that re-parse raw session files on every run. # Daily cost summary (default: last 30 days) agentsview usage daily # Per-model breakdown agentsview usage daily --breakdown # Filter by agent and date range agentsview usage daily --agent claude --since 2026-04-01 # One-line summary for shell prompts / status bars agentsview usage daily --all --json agentsview usage statusline Features: Automatic pricing via LiteLLM rates (with offline fallback) Authoritative Copilot CLI billing totals when session logs provide them Prompt-caching-aware cost calculation (cache creation / read tokens) Per-model breakdown with --breakdown Date filtering (--since, --until, --all), agent filtering (--agent) JSON output (--json) for scripting Timezone-aware date bucketing (--timezone) Works standalone -- no server required, just run the command Per-Session Details agentsview session usage prints per-session token statistics plus a cost estimate for a single session. The output reports the session's total output tokens and peak context tokens, plus a cost estimate (cost) when pricing is available for the session's model(s) (has_cost). Cost is computed from input/output and cache tokens internally, but only the output-token and peak-context totals are reported alongside the cost. # Print token usage and cost for a specific session agentsview session usage # JSON output for scripting agentsview session usage --format json The same per-session usage data is available from the REST API: GET /api/v1/sessions/{id}/usage The response includes the session_id, agent, project, total_output_tokens, peak_context_tokens, has_token_data, cost, has_cost, models, and unpriced_models fields from the CLI JSON schema. Machine-readable money is always an integer microdollar object, for example {"cost":{"microdollars":2410000}}; CLI tables and labels render that value as ordinary dollars. HTTP responses also include server_running: true. Existing sessions return 200 even when token or cost data is absent; missing sessions return 404. The deprecated alias agentsview token-use remains available for compatibility and now also reports cost estimates. Session Stats agentsview stats emits window-scoped analytics over recorded sessions: totals, archetypes (automation vs. quick/standard/deep/marathon), distributions for session duration, user-message count, peak context, and tools-per-turn, plus cache economics, tool/model/agent mix, and a temporal hourly breakdown. The --format json output follows a versioned v1 schema (schema_version: 1) suitable for downstream consumers. By default, stats only reads the local SQLite archive. Git-derived outcome metrics are opt-in because they can be slow or brittle on large/missing repos: use --include-git-outcomes for commits/LOC/files changed, and --include-github-outcomes for GitHub PR counts via gh (this also enables git outcomes). # Human-readable summary over the last 28 days agentsview stats # Machine-readable JSON over a fixed date range agentsview stats --format json --since 2026-04-01 --until 2026-04-15 # Restrict to one agent and inspect the schema agentsview stats --format json --agent claude | jq '.schema_version [truncated for AI cost control]