Quick Start
August 10, 2026 · View on GitHub
This page selects the shortest startup path. For complete model and proxy configuration, see the Configuration Guide.
1. Choose A Distribution
- Windows desktop users: prefer the
windows-x64portable archive. Open the Latest Release, download and verify SHA256, use Extract All, runSmartPerfetto.exe, save/test/activate a Provider in the UI, then load a trace. Follow the complete Windows guide. - Container deployment: use Docker Desktop/Engine; Windows uses the WSL2 backend.
- Developers: clone the repository for backend, Skill, or source work. Initialize the
perfetto/submodule only for Perfetto UI plugin development.
2. Docker Or Source Users: Clone The Repository
Regular users do not need to initialize the perfetto/ submodule. The repository already includes a pre-built Perfetto UI bundle.
Step 1: run git clone https://github.com/Gracker/SmartPerfetto.git.
Step 2: run cd SmartPerfetto.
Initialize the submodule only when you need to modify the AI Assistant frontend plugin.
3. Prepare Model Configuration
You do not need to configure every runtime. For first setup, pick one entry point: local claude, UI Provider Manager, one Claude-compatible env block, one OpenAI-compatible env block, a custom Pi Agent Core / OpenCode block, or an explicitly installed Qoder SDK with local CLI auth/PAT.
For local source runs, if Claude Code already works in the same terminal, you can skip API key configuration. Run claude first to verify that path.
Create an env file only when you need an explicit API key, a compatible proxy, or Docker runtime credentials:
Step 1: run cp backend/.env.example backend/.env.
Step 2: edit backend/.env. Uncomment ANTHROPIC_API_KEY for direct Anthropic access, uncomment one Claude Code / Anthropic-compatible provider block for compatible providers, use the OpenAI Agents SDK fields for OpenAI / OpenAI-compatible providers, or use the Pi Agent Core / OpenCode custom sections. Qoder is opt-in: review its terms, install @qoder-ai/qoder-agent-sdk, then use the Qoder section.
backend/.env.example includes presets for common Claude-compatible and OpenAI-compatible providers such as DeepSeek, GLM, Qwen, Kimi, Doubao, MiniMax, MiMo, and TokenHub. Docker reads the repository-root .env file, including both Docker Hub images and local source Docker builds:
Step 1: run cp .env.example .env.
Step 2: edit .env and uncomment one provider block. Skip this if you will configure the provider in UI Provider Manager, or if you only need a health/UI smoke check; real AI analysis requires one provider source.
If a Provider Manager profile is active in the UI, it overrides .env fallback. Confirm the active source in the container startup log, Provider settings, or authenticated /api/runtime-health; public /health is liveness-only.
4. Run with Docker
Use this path when you only want to try SmartPerfetto and do not want to configure a local development toolchain.
Step 1: run docker compose -f docker-compose.hub.yml pull.
Step 2: run docker compose -f docker-compose.hub.yml up -d.
Open http://localhost:10000, load a .pftrace or .perfetto-trace file, then open the AI Assistant panel.
The image already contains the pinned trace processor, committed UI, and signed Android Internals Knowledge Pack; the host does not download those runtime assets.
5. Run Locally
Use this path for local use, backend debugging, strategy/Skill edits, or pull requests.
Step 1: run ./start.sh.
./start.sh starts the backend and the repository's pre-built Perfetto UI and
reports success only after both HTTP readiness checks pass. On first run it
installs dependencies and downloads the pinned trace_processor_shell
prebuilt binary. If your network cannot access Google's artifact bucket,
prefer Docker, or set TRACE_PROCESSOR_PATH,
TRACE_PROCESSOR_DOWNLOAD_BASE, or TRACE_PROCESSOR_DOWNLOAD_URL before
running the script. If a process outside the current checkout owns a configured
port, startup reports its owner and exits instead of killing it.
| Service | Address |
|---|---|
| Perfetto UI | http://localhost:10000 |
| Backend API | http://localhost:3000 |
| Backend health | http://localhost:3000/health |
The backend starts automatically and the frontend uses the checked-in pre-built UI. Only AI Assistant frontend plugin work requires git submodule update --init --recursive followed by ./scripts/start-dev.sh.
The repository also contains an offline Knowledge Pack snapshot. The background
worker only checks signed updates according to configuration and never silently
switches an active session's knowledge version.
6. Docker Or Source Users: First Analysis
- Open
http://localhost:10000. - Load a Perfetto trace.
- Open AI Assistant.
- Ask a question, for example
Analyze scrolling jank.
Common prompts:
Analyze startup performanceIs there a CPU scheduling problem?Analyze this ANRWhat is the app package name and main process in this trace?
If a completed result shows a feedback opportunity, select Ask Agent what to report. The Agent uses that run's persisted evidence to explain whether the finding is actionable, who owns it, and what contribution could help. After required answers and sensitive-data review, SmartPerfetto opens only an unsubmitted GitHub draft. See Agent-Assisted GitHub Feedback.
7. Required Checks
Pick the smallest validation layer that proves your change. Maintainers and LLM/agents should first read Product Surface Rules and Testing Rules:
- Contract / type-only:
cd backend && npx tsc --noEmitplus the relevantsparkContractstests. - CRUD-only service: the service's unit test.
- MCP / memory / report / agent runtime:
cd backend && npm run test:scene-trace-regression. - Documentation entry, command, or link:
npm run verify:docs. - PR landing:
npm run verify:pr.
Release, npm, Docker, or portable-package changes also need the Release Runbook and Release Rules.
8. Trace Corpus
The repository's Trace corpus separates real cases from reproducible constructed cases. Each real case keeps its trace, analysis results, logs, provenance, and Android/API metadata in one directory. Constructed cases store deterministic overlays on real base traces and cover the current Skill and Strategy inventory.
- Check indexes, hashes, publication approvals, and exact coverage:
npm run trace:validate - Build every combined trace:
npm run trace:build - Run the full release regression:
npm run trace:regression
New captures must enter the ignored .private/ staging area through import-real. Run promote-real only after recording license, consent, privacy review, and sanitization review. See Trace/README.md for complete commands, the constructed-scenario template, coverage quality levels, and Android-version conventions.