gui-now
Python SDK + agent tools for GUI — instant shareable HTML canvases.
Install
pip install gui-now
With framework integrations:
pip install gui-now[langchain]
pip install gui-now[llamaindex]
pip install gui-now[crewai]
pip install gui-now[all]
Quick Start
from guinow import create_canvas
url = create_canvas(html="<h1>Hello World</h1>", title="My Canvas")
print(url) # https://gui.now/abc123
Full Client
from guinow import GuiNowClient
client = GuiNowClient(api_key="your-pro-key") # or set GUI_NOW_API_KEY env var
result = client.create(
html="<h1>Dashboard</h1>",
title="Q1 Report",
expires="7d",
)
print(result.url)
print(result.expires_at)
Every input format
client.create(html="<h1>Hi</h1>") # raw HTML
client.create(markdown="# Hi\n\nRendered server-side.") # Markdown
client.create_diagram("graph TD\n A-->B", title="Flow") # Mermaid
client.create(frames=[ # multi-tab canvas
{"html": "<h1>Overview</h1>", "label": "Overview"},
{"html": "<h1>Detail</h1>", "label": "Detail"},
])
Update and extend
create() returns an edit_token. Keep it — it is the only way to change a
canvas afterwards. Free tier allows 3 edits per canvas; Pro is unlimited.
canvas = client.create(html="<h1>Draft</h1>")
client.update(canvas.id, canvas.edit_token, html="<h1>Final</h1>")
client.update(canvas.id, canvas.edit_token, title="Renamed")
client.update(canvas.id, canvas.edit_token, password=None) # remove protection
client.extend(canvas.id) # push expiry to 24h from now
canvas.open() # open the URL in a browser
Omitting password leaves existing protection alone; passing None removes it.
LangChain
from guinow.langchain import GuiNowTool
tool = GuiNowTool()
# Add to your agent's tools list
agent = initialize_agent(tools=[tool], ...)
LlamaIndex
from guinow.llamaindex import get_guinow_tool
tool = get_guinow_tool()
agent = ReActAgent.from_tools([tool], ...)
CrewAI
from guinow.crewai import GuiNowTool
tool = GuiNowTool()
agent = Agent(tools=[tool], ...)
Environment Variables
| Variable | Description |
|---|---|
GUI_NOW_API_KEY |
Pro API key for higher rate limits and longer expiry |
GUI_NOW_URL |
Override the API base URL (defaults to https://gui.now) |
GUI_NEW_API_KEY and GUI_NEW_URL are the pre-rename names and are still read
as fallbacks, so keys exported before the move to gui.now keep working.
License
MIT
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 gui_now-1.0.0.tar.gz.
File metadata
- Download URL: gui_now-1.0.0.tar.gz
- Upload date:
- Size: 6.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a5bdbe46a829a81de77f3d69bbf84d706180ebdbca0d3094b998682fc85b72f4
|
|
| MD5 |
e33926c8df64f7bae291ab381d6e4743
|
|
| BLAKE2b-256 |
986706709cb8c52cbc853cac1f904551bc442a57a695d90ebaf9a8b91120baa0
|
Provenance
The following attestation bundles were made for gui_now-1.0.0.tar.gz:
Publisher:
publish.yml on gui-now/python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gui_now-1.0.0.tar.gz -
Subject digest:
a5bdbe46a829a81de77f3d69bbf84d706180ebdbca0d3094b998682fc85b72f4 - Sigstore transparency entry: 2789693303
- Sigstore integration time:
-
Permalink:
gui-now/python@b257106ea6c927f1facc4d7cc07c9ab27cfdb897 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/gui-now
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b257106ea6c927f1facc4d7cc07c9ab27cfdb897 -
Trigger Event:
release
-
Statement type:
File details
Details for the file gui_now-1.0.0-py3-none-any.whl.
File metadata
- Download URL: gui_now-1.0.0-py3-none-any.whl
- Upload date:
- Size: 8.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
851f379886976e4b3fc716ac9877c615a5fa4773130a90f1b5b30f8911902640
|
|
| MD5 |
3954d781322945aa6f58986106c97c2a
|
|
| BLAKE2b-256 |
2d757c5b45a6bf2060c012030c24e586063dc726de37e282b2c4857aded2656e
|
Provenance
The following attestation bundles were made for gui_now-1.0.0-py3-none-any.whl:
Publisher:
publish.yml on gui-now/python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gui_now-1.0.0-py3-none-any.whl -
Subject digest:
851f379886976e4b3fc716ac9877c615a5fa4773130a90f1b5b30f8911902640 - Sigstore transparency entry: 2789693362
- Sigstore integration time:
-
Permalink:
gui-now/python@b257106ea6c927f1facc4d7cc07c9ab27cfdb897 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/gui-now
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b257106ea6c927f1facc4d7cc07c9ab27cfdb897 -
Trigger Event:
release
-
Statement type: