Skip to content
| Marketplace
Sign in
Visual Studio Code>Visualization>GHCP LoggerNew to Visual Studio Code? Get it now.
GHCP Logger

GHCP Logger

Sweta Agarwal

| (0) | Free
Uses editing heuristics to track Human, Machine, and Collaborative activity and publish estimated human effort to Azure DevOps.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

GHCP Logger

Track editing activity in VS Code, estimate human coding effort, and publish that estimate to an Azure DevOps work item.

GHCP Logger displays line-level Human, Machine, and Collaborative attribution in the editor gutter. It also provides a metrics view for the selected Azure DevOps Task ID and can add estimated human hours to the work item's Completed Work field.

[!IMPORTANT] Attribution is heuristic. GHCP Logger does not use the GitHub Copilot API and cannot prove which tool generated specific code.

What it does

Editing attribution

The extension classifies editor changes by how VS Code reports them:

  • H - Human: Single-character typing on a line.
  • M - Machine: Multi-character insertion such as paste, autocomplete, or a snippet.
  • C - Collaboration: A line receives both Human and Machine interactions.

Multi-line insertions mark every inserted line. These signals are useful for reviewing editing patterns, but they should not be treated as authorship proof.

Human-effort estimate

GHCP Logger calculates:

human hours =
  human-line ratio × (elapsed tracked time - measured idle time)

The human-line ratio excludes unattributed lines. Idle time is currently measured while the VS Code window is unfocused. The result is an estimate, not a timesheet or billing record.

Azure DevOps publishing

Publishing adds the current estimated human hours to Microsoft.VSTS.Scheduling.CompletedWork on the selected work item.

After a successful publish, locally tracked metrics for that Task ID are cleared. New activity is accumulated for the next incremental publish.

Quick start: what to do next

  1. Install GHCP Logger and open a folder in VS Code.
  2. Select the GHCP Logger icon in the Activity Bar.
  3. Enter a numeric Azure DevOps Task or work-item ID in DevOps Input.
  4. Edit code normally. Save the file or move focus away from VS Code to flush recent activity to local storage.
  5. Open Logs Chart and select Refresh Metrics.
  6. Review the task ID, attribution percentages, and estimated human hours.
  7. Open Publish Metrics and select Publish when you are ready to update Azure DevOps.

The first publish asks for any missing Azure DevOps settings and prompts you to sign in with Microsoft.

Prerequisites

You need:

  • VS Code 1.100.0 or later
  • Access to an Azure DevOps organization and project
  • Permission to read and update the target work item
  • A work-item type that exposes the Completed Work field
  • A Microsoft account recognized by the configured Azure DevOps organization

Personal access tokens are not required.

Configure Azure DevOps

You can allow the extension to prompt for these values during the first publish, or configure them in VS Code settings:

{
  "metricsPublisher.azureDevOps.organizationUrl": "https://dev.azure.com/your-organization",
  "metricsPublisher.azureDevOps.projectName": "YourProject"
}

Supported organization URL formats are:

  • https://dev.azure.com/your-organization
  • https://your-organization.visualstudio.com

When a folder is open, prompted values are saved to workspace settings. Otherwise, they are saved to user settings.

Sign in

Publishing automatically requests a Microsoft sign-in when needed. You can also sign in before publishing:

  1. Open the Command Palette with Ctrl+Shift+P.
  2. Run GHCP Logger: Sign In to Azure DevOps.
  3. Choose an account with access to the configured organization and project.

VS Code manages the Microsoft authentication session. GHCP Logger uses a short-lived Microsoft Entra access token for Azure DevOps and does not store the token in settings.json.

Daily workflow

Select the correct Task ID

Enter the Task ID before editing. Activity is stored separately for each Task ID, and changing the ID refreshes the metrics view for the newly selected task.

Review attribution

Gutter markers update as you edit:

  • H represents single-character typing.
  • M represents multi-character insertion.
  • C represents both interaction types on the same line.

The chart reads persisted local metrics. If it appears stale:

  1. Save the active file.
  2. Select Refresh Metrics.
  3. Confirm that the displayed Task ID is correct.

Publish estimated effort

Before publishing:

  1. Confirm the organization, project, and Task ID.
  2. Confirm the account selected during Microsoft sign-in.
  3. Review the estimated hours in Logs Chart.
  4. Select Publish in Publish Metrics.

Publishing reads the current Completed Work value and adds the new estimate. It does not replace the existing value.

Commands

  • GHCP Logger: Sign In to Azure DevOps starts a fresh Microsoft sign-in.
  • GHCP Logger: Purge Log Data deletes all locally stored attribution and idle-time data.

Security and privacy

Source-code contents are not uploaded when publishing effort. The Azure DevOps request contains the work-item update and authentication information required by Azure DevOps.

The local SQLite database is stored in VS Code global storage and can contain:

  • Absolute file paths
  • Git branch names
  • Line numbers
  • Attribution categories and timestamps
  • Azure DevOps Task IDs
  • Measured idle periods

Use GHCP Logger: Purge Log Data before sharing a machine or when local tracking data is no longer needed.

The metrics and publishing webviews use restrictive Content Security Policies. Chart.js is pinned and packaged with the extension, so the webviews do not load runtime JavaScript from a CDN.

Troubleshooting

The GHCP Logger panel is not visible

  1. Open the Command Palette.
  2. Run Developer: Reload Window.
  3. Check View > Output > Log (Extension Host) if the panel remains absent.

Metrics are empty or stale

  1. Confirm that a valid numeric Task ID is selected.
  2. Edit and save a file.
  3. Select Refresh Metrics in Logs Chart.
  4. Confirm that you are viewing the intended workspace and Task ID.

Human hours show zero

Human hours can be zero when no lines are currently classified as Human, when only one timestamped line exists, or when measured idle time covers the tracked interval. Review the gutter attribution and continue editing before refreshing.

Microsoft sign-in fails

Confirm that:

  • The selected account belongs to the Azure DevOps organization.
  • Your organization permits Microsoft Entra authentication for Azure DevOps.
  • Conditional Access requirements are satisfied.

Run GHCP Logger: Sign In to Azure DevOps to choose a different account.

Publishing returns 401 or 403

  • 401 Unauthorized usually means the Microsoft session was rejected. Sign in again with the correct account.
  • 403 Forbidden usually means the account lacks permission to read or update the work item.

The work item cannot be updated

Confirm that the work-item type contains the Completed Work field. Some Azure DevOps processes or work-item types do not expose this field.

Known limitations

  • Attribution is based on editor-event shape, not AI-provider provenance.
  • Large human-generated pastes are classified as Machine.
  • Programmatic or snippet insertions are classified as Machine.
  • Idle time is based on VS Code window focus.
  • Publishing currently targets Azure DevOps Completed Work.
  • Metrics are stored locally until published or purged.

Release status

GHCP Logger is intended for pilot and evaluation use. Validate its estimates against your team's expectations before using them for reporting, performance management, billing, or compliance decisions.

License

GHCP Logger is distributed under the MIT License included with the extension.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft