artyfax 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +139 -0
- package/dist/cli.js +1432 -0
- package/package.json +49 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Artyfax
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
# artyfax
|
|
2
|
+
|
|
3
|
+
CLI for [Artyfax](https://artyfax.io) - your personal document library. Save, theme, search, and share your documents from the terminal.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install -g artyfax
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Requires Node.js 20 or later.
|
|
12
|
+
|
|
13
|
+
## Quick start
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
# Set your API key
|
|
17
|
+
export ARTYFAX_API_KEY="your-api-key"
|
|
18
|
+
|
|
19
|
+
# Save a document
|
|
20
|
+
arty save notes.md --category inbox
|
|
21
|
+
|
|
22
|
+
# List your documents
|
|
23
|
+
arty list
|
|
24
|
+
|
|
25
|
+
# Search your library
|
|
26
|
+
arty search "deployment guide"
|
|
27
|
+
|
|
28
|
+
# Check your setup
|
|
29
|
+
arty doctor
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Commands
|
|
33
|
+
|
|
34
|
+
### Documents
|
|
35
|
+
|
|
36
|
+
| Command | Description |
|
|
37
|
+
|---------|-------------|
|
|
38
|
+
| `arty save <file>` | Save a document (markdown or HTML) |
|
|
39
|
+
| `arty save --url <url>` | Save from a URL (server-side extraction) |
|
|
40
|
+
| `arty read <slug>` | Read document content (handles E2EE decryption) |
|
|
41
|
+
| `arty list` | List documents |
|
|
42
|
+
| `arty get <slug>` | Document metadata as JSON |
|
|
43
|
+
| `arty search <query>` | Full-text search |
|
|
44
|
+
| `arty update <slug> <file>` | Push updated content (auto-encrypts secure docs) |
|
|
45
|
+
| `arty metadata <slug>` | Update document metadata |
|
|
46
|
+
| `arty delete <slug>` | Delete a document |
|
|
47
|
+
| `arty open <slug>` | Open document in browser |
|
|
48
|
+
| `arty secure <slug>` | Encrypt a document |
|
|
49
|
+
| `arty unsecure <slug>` | Remove encryption |
|
|
50
|
+
|
|
51
|
+
### Shares
|
|
52
|
+
|
|
53
|
+
| Command | Description |
|
|
54
|
+
|---------|-------------|
|
|
55
|
+
| `arty share create <slug>` | Create a share link |
|
|
56
|
+
| `arty share list [slug]` | List shares |
|
|
57
|
+
| `arty share revoke <hash>` | Revoke a share link |
|
|
58
|
+
|
|
59
|
+
### Sub-resources
|
|
60
|
+
|
|
61
|
+
| Command | Description |
|
|
62
|
+
|---------|-------------|
|
|
63
|
+
| `arty cat list` | List categories with document counts |
|
|
64
|
+
| `arty tag list` | List tags with counts |
|
|
65
|
+
| `arty version list <slug>` | Version history |
|
|
66
|
+
| `arty version restore <slug>` | Restore a previous version |
|
|
67
|
+
|
|
68
|
+
### Annotations
|
|
69
|
+
|
|
70
|
+
| Command | Description |
|
|
71
|
+
|---------|-------------|
|
|
72
|
+
| `arty note list <slug>` | List annotations on a document |
|
|
73
|
+
| `arty note add <slug>` | Add a note (`--text` or stdin) |
|
|
74
|
+
| `arty note search <query>` | Search across annotations |
|
|
75
|
+
|
|
76
|
+
### Tools
|
|
77
|
+
|
|
78
|
+
| Command | Description |
|
|
79
|
+
|---------|-------------|
|
|
80
|
+
| `arty doctor` | Verify CLI setup |
|
|
81
|
+
| `arty skill install` | Install Artyfax skills for Claude Code |
|
|
82
|
+
|
|
83
|
+
## Global flags
|
|
84
|
+
|
|
85
|
+
| Flag | Description |
|
|
86
|
+
|------|-------------|
|
|
87
|
+
| `--json` | Machine-readable JSON output |
|
|
88
|
+
| `--yes`, `-y` | Skip interactive confirmations |
|
|
89
|
+
| `--api-key <key>` | API key (prefer env var) |
|
|
90
|
+
| `--endpoint <url>` | API endpoint |
|
|
91
|
+
| `--help`, `-h` | Show help |
|
|
92
|
+
| `--version`, `-v` | Show version |
|
|
93
|
+
|
|
94
|
+
Every command supports `--help` for detailed usage and examples:
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
arty save --help
|
|
98
|
+
arty share --help
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Slug resolution
|
|
102
|
+
|
|
103
|
+
Commands accept documents by full slug, bare name, or UUID:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
arty read inbox/my-doc # full slug
|
|
107
|
+
arty read my-doc # bare name (resolves automatically)
|
|
108
|
+
arty get 12345678-... # UUID
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## E2E Encryption
|
|
112
|
+
|
|
113
|
+
Artyfax supports client-side encryption. The CLI handles encryption and decryption transparently.
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
# Save an encrypted document
|
|
117
|
+
arty save secret.md --secure
|
|
118
|
+
|
|
119
|
+
# Read decrypts automatically (prompts for passphrase)
|
|
120
|
+
arty read inbox/secret
|
|
121
|
+
|
|
122
|
+
# Update auto-encrypts if the target is secure
|
|
123
|
+
arty update inbox/secret updated.md
|
|
124
|
+
|
|
125
|
+
# Set passphrase via env var to skip the prompt
|
|
126
|
+
export ARTYFAX_SECURE_PASSPHRASE="your-passphrase"
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## Environment variables
|
|
130
|
+
|
|
131
|
+
| Variable | Description |
|
|
132
|
+
|----------|-------------|
|
|
133
|
+
| `ARTYFAX_API_KEY` | API key for authentication (required) |
|
|
134
|
+
| `ARTYFAX_ENDPOINT` | API endpoint URL (default: `https://artyfax.io`) |
|
|
135
|
+
| `ARTYFAX_SECURE_PASSPHRASE` | E2EE passphrase (avoids interactive prompt) |
|
|
136
|
+
|
|
137
|
+
## License
|
|
138
|
+
|
|
139
|
+
MIT
|