solveit_client
A Python client for programmatically interacting with SolveIt dialogs.
Installation
Authentication
Set your SOLVEIT_TOKEN environment variable before using the client.
To find your token:
- Open Chrome DevTools (
F12orCmd+Option+I) - Go to the Application tab
- In the sidebar, expand Cookies and select your SolveIt domain
- Find the cookie named
_solveit - Copy its value—that’s your token
export SOLVEIT_TOKEN='your-token-here'
!pip install solveit_client
Quick Start
SolveItClient()
defaults to http://localhost:5001 when neither a URL argument nor
SOLVEIT_URL is set. Pass a URL explicitly for hosted SolveIt
instances.
from solveit_client.core import *
# Initialize client (explicit URL shown here; defaults to http://localhost:5001 if omitted)
sic = SolveItClient('https://your-instance.solve.it.com/'); sic
SolveItClient(self.url='https://your-instance.solve.it.com/')
Use the /test_route to confirm your client has connect:
sic('/test_route')
'here'
If you get an error saying No access. Please login and then retry.,
double check your SOLVEIT_TOKEN is correct and exported.
# Create a dialog
dlg = sic.create_dialog('my-project/experiment'); dlg
Dialog: my-project/experiment | Mode: learning
# Add and execute code
msg = dlg.add_msg('1 + 1'); msg
Message: _59a51ada | Type: code | 1 + 1 | Output:
msg.exec(); msg
Message: _59a51ada | Type: code | 1 + 1 | Output: 2
# Add a prompt for AI assistance
ai_msg = dlg.add_msg('Tell me about otters 🤓', msg_type='prompt')
ai_msg.exec(); ai_msg
Message: _e8ede692 | Type: prompt | Tell me about otters 🤓 | Output: Otters are fascinating semi-aquatic mammals! They'...
# View all messages
dlg.messages
dlg.delete()
{'success': 'deleted "/app/data/my-project/experiment"'}
CLI
The
sic
command gives you shell access to the same operations available in the
Python API. It uses the SOLVEIT_URL and SOLVEIT_TOKEN environment
variables (same as the Python client).
Set SOLVEIT_URL and SOLVEIT_TOKEN to avoid passing --url and
--token on every call. You can also set SOLVEIT_DIALOG to skip
--name:
export SOLVEIT_URL='https://your-instance.solve.it.com/' # defaults to http://localhost:5001
export SOLVEIT_TOKEN='your-token-here' # defaults to dummy, which works only for localhost
export SOLVEIT_DIALOG='my-project/experiment'
Run
sic
with no arguments to see available namespaces:
!sic
Usage: sic <operation> [args]
client SolveIt API client
dialog Dialog operations
message Message operations
List available methods on a namespace with --help:
!sic dialog --help
Usage: sic dialog.<method> [args]
add_msg Add a new message to the dialog and return it.
delete Delete this dialog.
find_msgs Find messages matching `re_pattern` and return as `Messages`.
link Link to the dialog.
messages All messages in this dialog.
read_msg Read a single message by index `n` or `id` and return a `Message`.
reset Reset the dialog instance.
run_all Run all code messages in the dialog from top to bottom.
stop Stop the dialog kernel.
to_xml Return dialog messages as an XML string.
toggle_header Toggle the header collapse state of the first message matching `re_pattern`.
Get help on a specific method:
!sic dialog.to_xml --help
Return dialog messages as an XML string.
--msg_type optional limit by message type ('code', 'note', or 'prompt')
--nums Whether to show line numbers
--include_output Include output in returned dict?
--trunc_out Middle-out truncate code output to 100 characters (only applies if `include_output`)?
--trunc_in Middle-out truncate cell content to 80 characters?
Create a dialog and add messages:
!sic client.create_dialog --name tmp/cli_demo
{"name": "tmp/cli_demo", "mode": "learning"}
!sic dialog.add_msg '1 + 1' --name tmp/cli_demo
{"id": "_8bd98af1", "msg_type": "code", "content": "1 + 1", "output": ""}
!sic dialog.add_msg 'Hello from the CLI!' --name tmp/cli_demo --msg_type prompt
{"id": "_a6398f51", "msg_type": "prompt", "content": "Hello from the CLI!", "output": "<output result=\"pending\" reason=\"incomplete\"/>"}
!sic message.exec --name tmp/cli_demo --id _a6398f51
{"id": "_a6398f51", "msg_type": "prompt", "content": "Hello from the CLI!", "output": "Hey! \ud83d\udc4b What can I help you with?\n\n<details class='token-usage-details'><summary>$0.0152</summary>\n\n`total=16,027 | in=16,011 | out=16 | cached=97.8% | cache_new=122 | $0.0152`\n\n</details>"}
List all messages in a dialog:
!sic dialog.messages --name tmp/cli_demo
[{"id": "_a0e3ddf8", "msg_type": "code", "content": "1 + 1", "output": ""}, {"id": "_84d8d761", "msg_type": "note", "content": "Hello from the CLI!", "output": ""}, {"id": "_4a7059d5", "msg_type": "prompt", "content": "Hello from the CLI!", "output": "Hey there! \ud83d\udc4b What are you working on today?\n\n<details class='token-usage-details'><summary>$0.0489</summary>\n\n`total=15,941 | in=15,924 | out=17 | cached=73.2% | cache_new=4,012 | $0.0489`\n\n</details>"}]
Clean up:
!sic dialog.delete --name tmp/cli_demo
{"success": "deleted \"/home/natedawg/tmp/cli_demo\""}
SolveIt Client Skill
We provide a SKILL.md for use in coding agents to give them context about how to use the SolveIt Client cli.
Metadata
Release files for solveit-client 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| solveit_client-0.1.0.tar.gz | 16.3 kB | Without provenance | Details for solveit_client-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| solveit_client-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for solveit_client-0.1.0-py3-none-any.whl |
Total release size: 31.3 kB
Release files / solveit_client-0.1.0.tar.gz
| Download URL | solveit_client-0.1.0.tar.gz |
|---|---|
| Size | 16.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c6275f085f247a6400319d0f9cf3ab56e629a539e4d9fe45a37199bfad5a9474
|
|
BLAKE2b-256 checksum How to use checksums |
97de01c66e4ad9897b6c2d2b81fb4490b93761fc651408c7e3a534e7d4df019a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / solveit_client-0.1.0-py3-none-any.whl
| Download URL | solveit_client-0.1.0-py3-none-any.whl |
|---|---|
| Size | 15.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8a4690a51de863ae7317d44d9f92437a422d87b106625de933d33f7a5038c705
|
|
BLAKE2b-256 checksum How to use checksums |
0a1971c1dd34a1c98c28110cf43ff8fce023e7d70a14c84b53e8e06820a02bc3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Security for solveit-client 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.