> ## Documentation Index
> Fetch the complete documentation index at: https://docs.screenpipe.com/llms.txt
> Use this file to discover all available pages before exploring further.

# consultant time tracking

> Build a reviewed, source-backed client time report without starting with invasive monitoring or automatic billing.

{/* https://screenpi.pe */}

use screenpipe to reconstruct work across calls, documents, code, email, and browser research. the goal is a defensible draft report—not a surveillance score or an invoice sent without review.

## a good first pilot

| scope      | recommendation                                                      |
| ---------- | ------------------------------------------------------------------- |
| person     | one consultant on their own device                                  |
| work       | one client or project                                               |
| duration   | one to two weeks                                                    |
| output     | date, active minutes, work blocks, deliverables, and uncertain time |
| acceptance | consultant reviews it; client agrees the level of detail is useful  |

```mermaid theme={null}
flowchart TD
    A["local screen and audio"] --> B["authoritative active time"]
    A --> C["AI project labels"]
    B --> D["draft client report"]
    C --> D
    D --> E["consultant review"]
    E --> F["timesheet or invoice input"]
```

## step by step

<Steps>
  <Step title="agree on the report before recording">
    Define the project, working hours, excluded apps, retention period, and whether the client should receive narrative detail or only totals. do not capture a client's device or employees without their authorization and a clear policy.
  </Step>

  <Step title="set privacy filters">
    Open **Settings → Privacy**. exclude password managers, personal messaging, banking, health, unrelated clients, and any confidential surface that is not needed for the report.
  </Step>

  <Step title="test one work block">
    Record 15–30 minutes of representative work. confirm the timeline contains the expected apps and that audio is captured only when needed.
  </Step>

  <Step title="get active time">
    Use `/activity-summary` for numeric totals. let the model classify the resulting blocks by client or project, but never let it manufacture time from the number of frames or search results.
  </Step>

  <Step title="add supporting context">
    Search the same time range for project terms, document titles, meetings, and deliverables. keep ambiguous blocks in an “unassigned” section instead of forcing a label.
  </Step>

  <Step title="review and correct">
    Check totals against your calendar and known breaks. remove unrelated detail, correct project labels, and mark estimates clearly.
  </Step>

  <Step title="share the smallest useful report">
    Export the reviewed result to your normal timesheet or attach it to an invoice. automate this handoff only after several accurate manual reports.
  </Step>
</Steps>

<img src="https://docs.screenpi.pe/public/app-screenshots/settings-privacy.png" alt="screenpipe privacy settings with API security and capture controls" width="1200" />

## API example

```bash theme={null}
export SCREENPIPE_API_KEY="$(npx -y screenpipe@latest auth token)"

curl -H "Authorization: Bearer $SCREENPIPE_API_KEY" \
  "http://localhost:3030/activity-summary?start_time=4h+ago&end_time=now"

curl -H "Authorization: Bearer $SCREENPIPE_API_KEY" \
  "http://localhost:3030/search?q=project-or-client-code&content_type=all&start_time=4h+ago&end_time=now&limit=50"
```

relative ranges such as `4h ago` and `now` are convenient for a first test. use ISO 8601 UTC timestamps when the report must match an exact calendar or billing window, and replace the project code with your own value.

## build it without code

<Steps>
  <Step title="open the pipe builder">
    Go to **Pipes → My Pipes** and scroll to **create your own pipe**.
  </Step>

  <Step title="describe the first version">
    Paste: “Create a manual pipe that writes a local client work report. use `/activity-summary` for numeric totals, bounded `/search` results for context, put ambiguous time in needs review, and never send or invoice automatically.”
  </Step>

  <Step title="let screenpipe build it">
    The app opens Home, asks the agent to create the pipe, and installs the result. when it finishes, return to **Pipes → My Pipes**.
  </Step>

  <Step title="run and inspect">
    Open the new pipe, run it once, and inspect its Markdown artifact and execution log. confirm that an empty window produces an explicit no-data report.
  </Step>

  <Step title="add a schedule later">
    Keep the first version manual. add a daily or weekly schedule only after several reports have correct totals and project labels.
  </Step>
</Steps>

<Note>
  the generated automation is a `pipe.md` file under `~/.screenpipe/pipes/`. advanced users can inspect and version that file; the [pipes guide](/pipes) explains its schedule, permissions, and artifacts.
</Note>

## prompt for the report

```markdown theme={null}
Create a draft client work report from the supplied activity summary and search results.

Rules:
- use activity-summary values for numeric time totals
- group work into coherent blocks, not individual frames
- separate observed facts from inferred project labels
- put ambiguous time in "needs review"
- exclude personal or unrelated-client content
- list deliverables and decisions only when the source data supports them

Output:
1. total active time
2. table of work blocks: time, project, activity, supporting app or document
3. deliverables and decisions
4. needs-review items
```

## what not to automate first

do not start by sending reports, creating invoices, writing to a client's system, or synchronizing every inferred block to a time tracker. save a local draft and review it first. once the labels are stable, an optional store pipe can copy reviewed entries into another system.

<Tip>
  for a daily personal view, use [daily work review](/daily-work-review). for finding repeated client processes, continue with [workflow discovery](/workflow-discovery).
</Tip>
