Skip to main content

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:

  1. Open Chrome DevTools (F12 or Cmd+Option+I)
  2. Go to the Application tab
  3. In the sidebar, expand Cookies and select your SolveIt domain
  4. Find the cookie named _solveit
  5. 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
ID Type Content Output
<a
href="https://lucid-magic-forges-szzy66.solve.it.com/dialog_?name=my-project/experiment#_1512badb"
target="_blank">_1512badb code 1 + 1 2
<a
href="https://lucid-magic-forges-szzy66.solve.it.com/dialog_?name=my-project/experiment#_4129a41c"
target="_blank">_4129a41c prompt Explain this code This code adds two numbers together: `1
<a
href="https://lucid-magic-forges-szzy66.solve.it.com/dialog_?name=my-project/experiment#_74e465c1"
target="_blank">_74e465c1 code 1 + 1 2
<a
href="https://lucid-magic-forges-szzy66.solve.it.com/dialog_?name=my-project/experiment#_4bd1fbe2"
target="_blank">_4bd1fbe2 prompt Explain this code This code performs addition: `1 + 1` res
<a
href="https://lucid-magic-forges-szzy66.solve.it.com/dialog_?name=my-project/experiment#_59a51ada"
target="_blank">_59a51ada code 1 + 1 2
<a
href="https://lucid-magic-forges-szzy66.solve.it.com/dialog_?name=my-project/experiment#_e8ede692"
target="_blank">_e8ede692 prompt Tell me about otters 🤓 Otters are fascinating semi-aquatic mamm
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.

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)

Source distribution for solveit-client 0.1.0
File Size Uploaded
solveit_client-0.1.0.tar.gz 16.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for solveit-client 0.1.0
File Interpreter ABI Platform
solveit_client-0.1.0-py3-none-any.whl Python 3 none any Details

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

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page