尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Developer time tracking with complete history — a privacy-first, WakaTime-compatible alternative.
The product is branded AtoAxis. The Rust package and installed client still
use the historical wakaclock name for compatibility (wakaclock-cli,
wakaclock, ~/.wakaclock and editor setting keys).
AtoAxis collects heartbeats from editor/CLI clients and derives durations, projects, languages, keystrokes and AI-attribution analytics. It keeps the full history for an account and never stores source code, prompts, AI responses or diff text.
Current product strengths include:
/api/v1 surface plus an AtoAxis /api/v2 envelope;The capability registry is the source of truth for what is production-ready. It intentionally records unfinished WakaTime routes instead of advertising them as complete.
editor/CLI/browser/desktop clients
│ heartbeat + OAuth
▼
AtoAxis Rust API
┌────────┼─────────┐
│ │ │
PostgreSQL ClickHouse Redis
transactions telemetry cache/locks
│
Kafka-compatible telemetry
RabbitMQ-compatible jobs
The frontend is a Next.js App Router application. It deploys from main to
Netlify at https://atoaxis.com; the Rust API and workers deploy as OCI
services on managed infrastructure. Docker Compose is for local development.
backend/api/ Rust API workspace and worker binaries
backend/api/crates/ core, AST, CLI and LSP crates
frontend/app/ Next.js dashboard and marketing site
extensions/vscode/ first-party VS Code client
extensions/browser/ WebExtension shared tracker and manifests
extensions/desktop-tracker/ desktop privacy policy/core scaffolding
docs/ compatibility and architecture contracts
.github/workflows/ CI and extension release workflows
Makefile repository quality/development commands
The live Rust workspace is backend/api; there is intentionally no repository
root Cargo.toml.
frontend/app/package-lock.json is the only frontend dependency lockfile.
make install
make infra-up
make env-setup
# terminal 1
make dev-backend
# terminal 2
cd frontend/app && npm run dev
The API listens on http://localhost:8080, the dashboard on
http://localhost:3000, ClickHouse UI on http://localhost:5521 and RabbitMQ
management on http://localhost:15672.
Redpanda is not started by make infra-up: the API has no Kafka adapter yet.
Start it explicitly with make infra-kafka-up.
Run Compose commands from the repository root (the backend/api directory does
not contain a separate Compose file). The services use Compose-managed,
project-scoped container names, so multiple worktrees can share one Docker
daemon without name collisions. If an older checkout left a stopped container
with a fixed name, remove that container after confirming it is stopped and
belongs to the old project; do not use docker rm -v, so named volumes and
development data are preserved.
docker-compose.yml uses prebuilt images and has no build: sections. Use
docker compose up -d (or make infra-up). If you ever need to rebuild a
Compose file that has build: sections, the flag comes after up, as in
docker compose up -d --build.
If Compose cannot connect to unix:///.../.docker/run/docker.sock, start
Docker Desktop and confirm the daemon with docker info, then rerun the
command.
On macOS, if /usr/bin/make stops with an Xcode license message, use the
already-installed Command Line Tools for this checkout without changing the
system developer selection:
DEVELOPER_DIR=/Library/Developer/CommandLineTools \
/Library/Developer/CommandLineTools/usr/bin/make dev
WakaTime clients authenticate with Basic API key or Bearer OAuth. AtoAxis v2 responses use a stable envelope:
{
"data": {},
"meta": {
"request_id": "uuid",
"generated_at": "2026-08-24T00:00:00Z",
"timezone": "UTC",
"data_freshness": "near_real_time",
"coverage": {}
}
}
Important route families:
| Surface | Examples |
|---|---|
| WakaTime v1 | /api/v1/heartbeats, /api/v1/summaries, /api/v1/stats, /api/v1/projects |
| AtoAxis analytics | /api/v2/capabilities, /api/v2/me/analytics, /api/v2/me/ai/effectiveness |
| Goals/exports | /api/v2/me/goals, /api/v2/exports, WakaTime data dumps |
| Integrations/VCS | /api/v2/integrations, /api/v2/repositories, /api/v2/commits, /api/v2/pull-requests |
| Organizations | /api/v2/organizations, teams, audit, SSO/SCIM and billing routes |
| OAuth | /oauth/authorize, /oauth/token, /oauth/revoke, device flow |
The manifest lists all 87 inventoried WakaTime routes and their current status, auth, scope, pagination and response behavior. Verify it with:
node scripts/verify-compatibility-manifest.mjs
# all local gates
make check
# individual gates
make lint
make test
make build
make check-seo
# ClickHouse SQL regressions against an isolated database
cd backend/api
CLICKHOUSE_TEST_URL=http://localhost:8123 \
cargo test --workspace -- --ignored --test-threads=1
CI runs frontend typecheck/lint/unit/build/prerender, browser tests, Rust format/Clippy/tests, isolated ClickHouse tests, extension tests, compatibility manifest validation, secret scanning and dependency audit.
Frontend production variables:
NEXT_PUBLIC_APP_URL=https://atoaxis.com
NEXT_PUBLIC_WAKACLOCK_API_URL=https://api.atoaxis.com
Backend production minimum:
CLICKHOUSE_URL=<managed ClickHouse URL>
POSTGRES_URL=<managed PostgreSQL URL>
REDIS_URL=<managed Redis URL; use rediss:// when TLS is required>
PRESENCE_V2_ENABLED=true
JWT_SECRET=<long random value>
CORS_ORIGINS=https://atoaxis.com,https://www.atoaxis.com
Do not use ALLOW_INSECURE_JWT_SECRET=1 or CORS_ORIGINS=* in production.
Client plugins and SDKs are intended for Apache-2.0 distribution. The hosted server may remain proprietary; see the applicable license files for each component.