You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Here we hope to clarify the architecture of ActivityWatch for you. Please file an issue or pull request if you think something is missing.
6
+
7
+
Modules
8
+
=======
9
+
10
+
Server
11
+
------
12
+
13
+
Known as aw-server, it handles storage and retrieval of all activities/entries in buckets. Usually there exists one bucket per watcher.
14
+
15
+
Clients
16
+
-------
17
+
18
+
The server doesn't do anything interesting on its own, for that we need clients such as watchers and user interfaces.
19
+
Writing these clients is something we've tried to make as easy as possible by creating client libraries with a clear API.
20
+
21
+
Currently the primary client library is written in Python (known simply as aw-client) but a client library written in JavaScript is on the way and is expected to have the same level of support in the future.
22
+
23
+
Client libraries:
24
+
25
+
- aw-client (Python)
26
+
- aw-client-js (JavaScript)
27
+
28
+
Watchers
29
+
^^^^^^^^
30
+
31
+
Since aw-server doesn't do any data collection on it's own, we need watchers that observe the world and sent the data off to aw-server for storage.
32
+
33
+
Examples of watchers:
34
+
35
+
- aw-watcher-afk
36
+
- aw-watcher-window
37
+
38
+
User interfaces
39
+
^^^^^^^^^^^^^^^
40
+
41
+
Examples of UIs:
42
+
43
+
- aw-webui
44
+
45
+
Libraries
46
+
---------
47
+
48
+
Some of the logic of ActivityWatch is shared across the server and clients, such as the Event model.
49
+
Due to this, we've created a common library :code:`aw-core` which includes many of the essentials in ActivityWatch.
0 commit comments