No project description provided
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file solveit_client-0.1.0.tar.gz.
File metadata
- Download URL: solveit_client-0.1.0.tar.gz
- Upload date:
- Size: 16.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c6275f085f247a6400319d0f9cf3ab56e629a539e4d9fe45a37199bfad5a9474
|
|
| MD5 |
d96ebf587d22357470f55180062b1edf
|
|
| BLAKE2b-256 |
97de01c66e4ad9897b6c2d2b81fb4490b93761fc651408c7e3a534e7d4df019a
|
File details
Details for the file solveit_client-0.1.0-py3-none-any.whl.
File metadata
- Download URL: solveit_client-0.1.0-py3-none-any.whl
- Upload date:
- Size: 15.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a4690a51de863ae7317d44d9f92437a422d87b106625de933d33f7a5038c705
|
|
| MD5 |
c5296799c856fcd07fa47b2e01d1a170
|
|
| BLAKE2b-256 |
0a1971c1dd34a1c98c28110cf43ff8fce023e7d70a14c84b53e8e06820a02bc3
|