.continue/rules/dev-data-guide.md
Development data (dev data) captures detailed information about how developers interact with LLM-aided development tools. Unlike basic telemetry, dev data includes lots of details into the complete software development workflow, including code context, user interactions, and development patterns.
/core/data/log.ts: Main DataLogger class - singleton for event logging and remote transmission/packages/config-yaml/src/schemas/data/: Schema definitions for all event types~/.continue/dev_data/~/.continue/dev_data/{version}/{eventName}.jsonltokensGenerated: LLM token usage trackingautocomplete: Code completion interactionschatInteraction: Chat-based development assistanceeditInteraction: Code editing sessionseditOutcome: Results of edit operationsnextEditOutcome: Next Edit feature outcomeschatFeedback: User feedback on AI responsestoolUsage: Tool interaction statisticsquickEdit: Quick edit functionality usage/packages/config-yaml/src/schemas/data/All events inherit from a base schema (/packages/config-yaml/src/schemas/data/base.ts):
{
eventName: string,
schema: string,
timestamp: string,
userId: string,
userAgent: string,
selectedProfileId: string
}
/core/autocomplete/util/AutocompleteLoggingService.tsDataLogger.logDevData()/extensions/vscode/src/extension/EditOutcomeTracker.ts, /core/nextEdit/NextEditLoggingService.ts/core/llm/index.tsDev data is configured through data blocks in your Continue config:
data:
- name: "Local Development Data"
destination: "file:///Users/developer/.continue/dev_data"
schema: "0.2.0"
level: "all"
events: ["autocomplete", "chatInteraction", "editOutcome"]
- name: "Team Analytics"
destination: "https://analytics.yourcompany.com/api/events"
schema: "0.2.0"
level: "noCode"
apiKey: "your-api-key-here"
events: ["tokensGenerated", "toolUsage"]
destination: Where to send data (file:// for local, http:///https:// for remote)schema: Schema version to use ("0.1.0" or "0.2.0")level: Data detail level ("all" includes code, "noCode" excludes code content)events: Array of event types to collectapiKey: Authentication for remote endpoints"all" level: Includes code content (prefixes, suffixes, completions)"noCode" level: Excludes code content, only metadata and metrics/packages/config-yaml/src/schemas/data//packages/config-yaml/src/schemas/data/index.ts/packages/config-yaml/src/schemas/data/import { DataLogger } from "core/data/log"DataLogger.getInstance().logDevData(eventName, data)~/.continue/dev_data/data blocks in Continue configDataLogger.getInstance()Most dev data logging follows a service pattern:
export class FeatureLoggingService {
private dataLogger = DataLogger.getInstance();
logFeatureUsage(data: FeatureUsageData) {
this.dataLogger.logDevData("featureUsage", data);
}
}
Events are typically logged at key interaction points:
// When user accepts autocomplete
onAutocompleteAccepted(completion: CompletionData) {
AutocompleteLoggingService.getInstance().logAutocompleteAccepted(completion);
}
This guide provides the foundation for understanding and working with Continue's dev data system. Always prioritize user privacy and follow established patterns when making changes.