tamarind-cli 0.1.0__py3-none-any.whl

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.
@@ -0,0 +1,131 @@
1
+ Metadata-Version: 2.4
2
+ Name: tamarind-cli
3
+ Version: 0.1.0
4
+ Summary: Command-line interface for the Tamarind Bio platform — submit, monitor, and download protein/molecule jobs from your terminal or an AI agent.
5
+ Project-URL: Homepage, https://tamarind.bio
6
+ Project-URL: Documentation, https://app.tamarind.bio/api-docs
7
+ Project-URL: Source, https://github.com/Tamarind-Bio/tamarind-cli
8
+ Author: Tamarind Bio
9
+ License: MIT
10
+ Keywords: agents,alphafold,bioinformatics,boltz,cli,protein
11
+ Requires-Python: >=3.10
12
+ Requires-Dist: httpx>=0.27
13
+ Requires-Dist: pyyaml>=6.0
14
+ Requires-Dist: typer>=0.12
15
+ Provides-Extra: dev
16
+ Requires-Dist: pytest>=8.0; extra == 'dev'
17
+ Requires-Dist: respx>=0.21; extra == 'dev'
18
+ Requires-Dist: ruff>=0.5; extra == 'dev'
19
+ Description-Content-Type: text/markdown
20
+
21
+ # Tamarind CLI
22
+
23
+ Command-line interface for the [Tamarind Bio](https://tamarind.bio) platform.
24
+ Discover tools, submit and monitor protein / nucleic-acid / small-molecule jobs,
25
+ and download results — from your terminal, a script, CI, or an AI coding agent
26
+ (Claude Code, Codex, …).
27
+
28
+ The CLI is a thin client over the same API the [Tamarind MCP
29
+ server](https://mcp.tamarind.bio) uses, so the two stay in lockstep. See
30
+ [`docs/architecture.md`](docs/architecture.md) for how drift is prevented.
31
+
32
+ ## Install
33
+
34
+ Once published to PyPI:
35
+
36
+ ```bash
37
+ curl -fsSL https://install.tamarind.bio/cli/install.sh | sh
38
+ # or:
39
+ uv tool install tamarind-cli # or: pipx install tamarind-cli
40
+ ```
41
+
42
+ Before then (or to track the repo directly), install from git:
43
+
44
+ ```bash
45
+ uv tool install "git+https://github.com/Tamarind-Bio/tamarind-cli"
46
+ # or: pipx install "git+https://github.com/Tamarind-Bio/tamarind-cli"
47
+ ```
48
+
49
+ > Releasing: tag a GitHub Release and the [`publish.yml`](.github/workflows/publish.yml)
50
+ > workflow builds and uploads to PyPI via Trusted Publishing (configure the
51
+ > trusted publisher for `tamarind-cli` on PyPI first).
52
+
53
+ ## Authenticate
54
+
55
+ Get an API key from the Tamarind web app (Settings → API), then either:
56
+
57
+ ```bash
58
+ export TAMARIND_API_KEY="sk_..." # best for agents / CI
59
+ # or
60
+ tamarind auth login # stores it in ~/.tamarind/config.json
61
+ tamarind auth status
62
+ ```
63
+
64
+ ## Quickstart
65
+
66
+ ```bash
67
+ # 1. Find a tool
68
+ tamarind tools --function structure-prediction --modality protein
69
+ tamarind tools --search boltz
70
+
71
+ # 2. Inspect its parameters and grab a runnable example
72
+ tamarind schema boltz
73
+ tamarind schema boltz --example > job.yaml
74
+
75
+ # 3. Validate, then submit
76
+ tamarind validate boltz --input job.yaml
77
+ tamarind submit boltz --input job.yaml --name my-run --wait --download ./out
78
+
79
+ # 4. Monitor / fetch
80
+ tamarind jobs
81
+ tamarind status my-run
82
+ tamarind results my-run --download ./out
83
+ ```
84
+
85
+ Set individual fields inline instead of a file:
86
+
87
+ ```bash
88
+ tamarind submit boltz \
89
+ --set inputFormat=sequence \
90
+ --set sequence=MKTVRQERLKSIVRIL... \
91
+ --name quick-fold
92
+ ```
93
+
94
+ ## Output for agents
95
+
96
+ Every command emits JSON when stdout is not a TTY, or with `--json`. Exit codes
97
+ are stable: `0` ok, `3` auth, `4` not-found, `5` validation, `6` rate-limit.
98
+
99
+ ```bash
100
+ tamarind jobs --json | jq '.jobs[] | select(.JobStatus=="Running")'
101
+ ```
102
+
103
+ ## Commands
104
+
105
+ | Group | Commands |
106
+ |---|---|
107
+ | Discover | `tools`, `modalities`, `functions`, `schema` |
108
+ | Submit | `validate`, `submit`, `batch` |
109
+ | Monitor | `jobs`, `status`, `wait`, `results`, `logs` |
110
+ | Files | `files list`, `files upload`, `files delete`, `files folders` |
111
+ | Lifecycle | `cancel`, `delete` |
112
+ | Auth | `auth login`, `auth status`, `auth logout` |
113
+
114
+ Run `tamarind <command> --help` for full options.
115
+
116
+ ## Configuration
117
+
118
+ | Setting | Flag | Env var | Default |
119
+ |---|---|---|---|
120
+ | API key | `--api-key` | `TAMARIND_API_KEY` | — |
121
+ | Job API base | `--api-base` | `TAMARIND_API_BASE` | `https://app.tamarind.bio/api/` |
122
+ | Catalog base | `--catalog-base` | `TAMARIND_CATALOG_BASE` | `https://mcp.tamarind.bio` |
123
+ | Profile | `--profile` | `TAMARIND_PROFILE` | `default` |
124
+
125
+ Profiles (key + endpoints) are stored in `~/.tamarind/config.json`. Use a
126
+ profile to point at staging:
127
+
128
+ ```bash
129
+ tamarind --profile staging --api-base https://staging.tamarind.bio/api/ auth login
130
+ TAMARIND_PROFILE=staging tamarind tools
131
+ ```
@@ -0,0 +1,20 @@
1
+ tamarind/__init__.py,sha256=Wd1r2m8FMiy1PR5J6tamVNJ-0w2Ohs2KmfLYWfveTBI,707
2
+ tamarind/catalog.py,sha256=5kJZsRmp7ot_cNf0aok36aPAlr7pL3JqUeTfyScWRS0,2364
3
+ tamarind/config.py,sha256=5Z1xECYk3ydsB0ZNZftCuAK9-DMh2UXT5xeNpf2oRZY,4399
4
+ tamarind/errors.py,sha256=RlqiQj6yCvXbHLfd_Ep7Nmn43nz9vj2cNDo6MZpmDoA,1437
5
+ tamarind/http.py,sha256=gJmeK4d8YSKYnJakI-X-sJRe3CF2POi_AtbxowjfzjQ,5127
6
+ tamarind/jobs.py,sha256=WgqNfhNZyjzYJj8JfQ7gxp1aFA2LNg26E-x6dv2vp0Y,3360
7
+ tamarind/rest.py,sha256=uRu189DlI6ntcQy__dWQVMCUoAGHIT2JfIvNWIFkvSg,6074
8
+ tamarind/cli/__init__.py,sha256=Lq30AODa0cmKz24VuAgXQ-CAXTQ8EkvP06oJymTgY3U,49
9
+ tamarind/cli/inputs.py,sha256=wChHGxRju5aENyUcVHpcrb2TJ6SAHfuzeIOeefxFFhA,3536
10
+ tamarind/cli/main.py,sha256=1zOhM5D4V5TTuRHeRDOZ8h0tZj66e4FnI7m9v9wzU2g,3905
11
+ tamarind/cli/output.py,sha256=1SEcWNcEHFoJW1vtbH7RPdoAEwwS1RnYWQYTzCkq0i0,1997
12
+ tamarind/cli/commands/__init__.py,sha256=Rb-d2e6JpWZ5pPUP-TjKMWGtNCwpZCMYc0GulfEXbRs,26
13
+ tamarind/cli/commands/auth.py,sha256=mbm9Tr98PKNZmiflFCELfPq8jVgwnzudxKG7gyZtsDk,2784
14
+ tamarind/cli/commands/catalog.py,sha256=tKfitlfitpXcvUfEUhRLBba3mRs7JA3XIE9pxLQjKc8,4644
15
+ tamarind/cli/commands/files.py,sha256=Kunvn3VbEMvHS9epZGtpF4GcvzqYluBfhwUAFcgoi-g,4536
16
+ tamarind/cli/commands/jobs.py,sha256=2-tIirj5p9MQdl0aK5RwZHsDZtxTNj3ngT1Sn9GN_mA,14728
17
+ tamarind_cli-0.1.0.dist-info/METADATA,sha256=4hk89JwXFBXwU2VwPnqllB841nvXvacKimuS7vw8gIw,4123
18
+ tamarind_cli-0.1.0.dist-info/WHEEL,sha256=mffPy8wBnZQn2VnJUU5jE99KsxaSfiyMHV9Yt0aLVxs,87
19
+ tamarind_cli-0.1.0.dist-info/entry_points.txt,sha256=XIVPkDzkzJ2QSZIC4YeSqQl8AIkCg2Lgr5CSAlnobCY,51
20
+ tamarind_cli-0.1.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.30.1
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ tamarind = tamarind.cli.main:run