Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
68788de
chore(telemetry): setup telemetry using Segment
adi-wan-askui Mar 28, 2025
9fcc375
chore(telemetry): identify user
adi-wan-askui Mar 28, 2025
9d9074b
chore(telemetry): track context (app name, version, group_id)
adi-wan-askui Mar 28, 2025
babec1e
chore(telemetry): track context (os, platform)
adi-wan-askui Mar 28, 2025
0f3f0fd
chore(telemetry): improve (wip)
adi-wan-askui Mar 31, 2025
21cbe4e
chore(telemetry): track public interface of AskUiControllerClient and…
adi-wan-askui Mar 31, 2025
313aea7
refactor(telemetry): generalize processor interface
adi-wan-askui Apr 1, 2025
cb82df3
refactor(telemetry): replace track_call with record_call
adi-wan-askui Apr 1, 2025
3c1dd03
chore(telemetry): flush telemetry events when exiting vision agent co…
adi-wan-askui Apr 2, 2025
d71bd48
fix(telemetry): adjust to segment (telemetry backend/processor)
adi-wan-askui Apr 2, 2025
34445f5
docs(telemetry): add docs about telemetry to README
adi-wan-askui Apr 2, 2025
27a1921
chore(telemetry): clean up
adi-wan-askui Apr 2, 2025
229c776
chore(telemetry): flush even if VisionAgent.__exit__ raises
adi-wan-askui Apr 4, 2025
0b6c6f0
chore(telemetry): detect distribute name dynamically when determining…
adi-wan-askui Apr 4, 2025
9edb901
chore(telemetry): make machine id optional if not available
adi-wan-askui Apr 4, 2025
19e6dc0
chore(telemetry): decouple anonymous id from device id (fixes missing…
adi-wan-askui Apr 4, 2025
108141d
ci: add checks (only tests for now)
adi-wan-askui Apr 4, 2025
b6e41c1
ci: exclude integration tests from checks
adi-wan-askui Apr 4, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .env.template
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,6 @@ TARS_API_KEY=

# Anthropic API
ANTHROPIC_API_KEY=

# Telemetry
ASKUI__VA__TELEMETRY__ENABLED=True # Set to "False" to disable telemetry
21 changes: 21 additions & 0 deletions .github/workflows/checks.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name: Checks

on:
pull_request:
push:
branches: [main]
workflow_call:

jobs:
checks:
name: Run Checks
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 2
- uses: pdm-project/setup-pdm@v4
with:
cache: true
- run: pdm install
- run: pdm run test:unit
8 changes: 4 additions & 4 deletions .github/workflows/publish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,18 @@ on:


jobs:
call-reusable:
uses: ./.github/workflows/checks.yaml
pypi-publish:
name: upload release to PyPI
runs-on: ubuntu-latest
permissions:
# This permission is needed for private repositories.
contents: read
# IMPORTANT: this permission is mandatory for trusted publishing
id-token: write
steps:
- uses: actions/checkout@v4

- uses: pdm-project/setup-pdm@v4

with:
cache: true
- name: Publish package distributions to PyPI
run: pdm publish
15 changes: 14 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -302,7 +302,7 @@ It connects Agent OS with powerful computer use models like Anthropic's Claude S

**Agent OS** is a custom-built OS controller designed to enhance your automation experience.

It offers powerful features like
It offers powerful features like
- multi-screen support,
- support for all major operating systems (incl. Windows, MacOS and Linux),
- process visualizations,
Expand All @@ -311,6 +311,19 @@ It connects Agent OS with powerful computer use models like Anthropic's Claude S
and more exciting features like application selection, in background automation and video streaming are to be released soon.


## Telemetry

By default, we record usage data to detect and fix bugs inside the package and improve the UX of the package including
- version of the `askui` package used
- information about the environment, e.g., operating system, architecture, device id (hashed to protect privacy), python version
- session id
- some of the methods called including (non-sensitive) method parameters and responses, e.g., the click coordinates in `click(x=100, y=100)`
- exceptions (types and messages)
- AskUI workspace and user id if `ASKUI_WORKSPACE_ID` and `ASKUI_TOKEN` are set

If you would like to disable the recording of usage data, set the `ASKUI__VA__TELEMETRY__ENABLED` environment variable to `False`.


## Experimental Features

### Chat
Expand Down
96 changes: 86 additions & 10 deletions pdm.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 11 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
[project]
name = "askui"
version = "0.2.4"
description = "Automate computer tasks in Python"
authors = [
{name = "askui GmbH", email = "info@askui.com"},
Expand All @@ -10,7 +9,7 @@ dependencies = [
"grpcio-tools>=1.67.0",
"pillow>=11.0.0",
"pydantic>=2.9.2",
"anthropic>=0.37.1",
"anthropic>=0.49.0",
"rich>=13.9.4",
"pyperclip>=1.9.0",
"gradio-client>=1.4.3",
Expand All @@ -20,20 +19,29 @@ dependencies = [
"tenacity>=9.0.0",
"python-dateutil>=2.9.0.post0",
"openai>=1.61.1",
"segment-analytics-python>=2.3.4",
"py-machineid>=0.7.0",
"httpx>=0.28.1",
]
requires-python = ">=3.10"
readme = "README.md"
license = {text = "MIT"}
dynamic = ["version"]

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[tool.hatch.version]
path = "src/askui/__init__.py"

[tool.pdm]
distribution = true

[tool.pdm.scripts]
test = "pytest"
"test:unit" = "pytest tests/unit"
"test:integration" = "pytest tests/integration"
sort = "isort ."
format = "black ."
lint = "ruff check ."
Expand All @@ -47,6 +55,7 @@ test = [
"isort>=6.0.0",
"black>=25.1.0",
"ruff>=0.9.5",
"pytest-mock>=3.14.0",
]
chat = [
"streamlit>=1.42.0",
Expand Down
4 changes: 4 additions & 0 deletions src/askui/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
"""AskUI Vision Agent"""

__version__ = "0.2.4"

from .agent import VisionAgent

__all__ = [
Expand Down
Loading