akashcli 4.7.2__tar.gz → 4.7.4__tar.gz

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.
Files changed (33) hide show
  1. {akashcli-4.7.2 → akashcli-4.7.4}/PKG-INFO +1 -1
  2. {akashcli-4.7.2 → akashcli-4.7.4}/akashcli/__init__.py +1 -1
  3. {akashcli-4.7.2 → akashcli-4.7.4}/akashcli/cli.py +42 -5
  4. {akashcli-4.7.2 → akashcli-4.7.4}/akashcli.egg-info/PKG-INFO +1 -1
  5. {akashcli-4.7.2 → akashcli-4.7.4}/pyproject.toml +1 -1
  6. {akashcli-4.7.2 → akashcli-4.7.4}/README.md +0 -0
  7. {akashcli-4.7.2 → akashcli-4.7.4}/akashcli/_net.py +0 -0
  8. {akashcli-4.7.2 → akashcli-4.7.4}/akashcli/auth.py +0 -0
  9. {akashcli-4.7.2 → akashcli-4.7.4}/akashcli/client.py +0 -0
  10. {akashcli-4.7.2 → akashcli-4.7.4}/akashcli/config.py +0 -0
  11. {akashcli-4.7.2 → akashcli-4.7.4}/akashcli/crypto.py +0 -0
  12. {akashcli-4.7.2 → akashcli-4.7.4}/akashcli/env_manager.py +0 -0
  13. {akashcli-4.7.2 → akashcli-4.7.4}/akashcli/exceptions.py +0 -0
  14. {akashcli-4.7.2 → akashcli-4.7.4}/akashcli/exec.py +0 -0
  15. {akashcli-4.7.2 → akashcli-4.7.4}/akashcli/integrity.py +0 -0
  16. {akashcli-4.7.2 → akashcli-4.7.4}/akashcli/logger.py +0 -0
  17. {akashcli-4.7.2 → akashcli-4.7.4}/akashcli/models.py +0 -0
  18. {akashcli-4.7.2 → akashcli-4.7.4}/akashcli/p2p.py +0 -0
  19. {akashcli-4.7.2 → akashcli-4.7.4}/akashcli/packages.py +0 -0
  20. {akashcli-4.7.2 → akashcli-4.7.4}/akashcli/relay.py +0 -0
  21. {akashcli-4.7.2 → akashcli-4.7.4}/akashcli/restore.py +0 -0
  22. {akashcli-4.7.2 → akashcli-4.7.4}/akashcli/snapshot_crypto.py +0 -0
  23. {akashcli-4.7.2 → akashcli-4.7.4}/akashcli/storage.py +0 -0
  24. {akashcli-4.7.2 → akashcli-4.7.4}/akashcli/terminal.py +0 -0
  25. {akashcli-4.7.2 → akashcli-4.7.4}/akashcli/updater.py +0 -0
  26. {akashcli-4.7.2 → akashcli-4.7.4}/akashcli/uploader.py +0 -0
  27. {akashcli-4.7.2 → akashcli-4.7.4}/akashcli/utils.py +0 -0
  28. {akashcli-4.7.2 → akashcli-4.7.4}/akashcli.egg-info/SOURCES.txt +0 -0
  29. {akashcli-4.7.2 → akashcli-4.7.4}/akashcli.egg-info/dependency_links.txt +0 -0
  30. {akashcli-4.7.2 → akashcli-4.7.4}/akashcli.egg-info/entry_points.txt +0 -0
  31. {akashcli-4.7.2 → akashcli-4.7.4}/akashcli.egg-info/requires.txt +0 -0
  32. {akashcli-4.7.2 → akashcli-4.7.4}/akashcli.egg-info/top_level.txt +0 -0
  33. {akashcli-4.7.2 → akashcli-4.7.4}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: akashcli
3
- Version: 4.7.2
3
+ Version: 4.7.4
4
4
  Summary: Akash CLI — secure remote shell relay, file vault, and device management
5
5
  License-Expression: MIT
6
6
  Keywords: akash,cli,relay,remote-shell,vault
@@ -2,7 +2,7 @@ try:
2
2
  from importlib.metadata import version
3
3
  __version__ = version("akashcli")
4
4
  except Exception:
5
- __version__ = "4.7.2"
5
+ __version__ = "4.7.4"
6
6
 
7
7
  AKASH_VERSION = __version__
8
8
 
@@ -2890,6 +2890,14 @@ def agent_info(
2890
2890
  except Exception:
2891
2891
  status = "offline (server unreachable)"
2892
2892
 
2893
+ csec = cached_profile.get("client_secret")
2894
+ mcp_url = None
2895
+ if csec:
2896
+ import urllib.parse
2897
+ dev_fp = _device_fingerprint()
2898
+ params = urllib.parse.urlencode({"cid": cid, "csec": csec, "dfp": dev_fp})
2899
+ mcp_url = f"{base}/mcp?{params}"
2900
+
2893
2901
  _p()
2894
2902
  print(f" {_C}╭─ 🤖 AGENT PERMISSION DETAILS: {_W}{name}{_RS} {_dim('(' + pid + ')')}")
2895
2903
  print(f" {_GR}│{_RS} {_DM}Profile ID :{_RS} {_ye(pid)}")
@@ -2897,6 +2905,9 @@ def agent_info(
2897
2905
  st_col = _G if "active" in status.lower() else (_Y if "pending" in status.lower() else _R)
2898
2906
  print(f" {_GR}│{_RS} {_DM}Status :{_RS} {st_col}{status.upper()}{_RS}")
2899
2907
  print(f" {_GR}│{_RS} {_DM}Active Scopes :{_RS} {_cy(scopes)}")
2908
+ print(f" {_GR}│{_RS} {_DM}Server URL :{_RS} {_cy(base)}")
2909
+ if mcp_url:
2910
+ print(f" {_GR}│{_RS} {_DM}Connection URL :{_RS} {_dim(mcp_url)}")
2900
2911
  print(f" {_GR}│{_RS}")
2901
2912
  print(f" {_GR}│{_RS} {_DM}PERMISSIONS BREAKDOWN:{_RS}")
2902
2913
  print(f" {_GR}│{_RS} • Code Reading : {_G}[ALLOWED]{_RS}")
@@ -3040,18 +3051,36 @@ def agent_create(
3040
3051
  try: agents_file.chmod(0o600)
3041
3052
  except OSError: pass
3042
3053
 
3054
+ cid = d["client_id"]
3055
+ csec = d["client_secret"]
3056
+ dev_fp = _device_fingerprint()
3057
+ import urllib.parse
3058
+ params = urllib.parse.urlencode({"cid": cid, "csec": csec, "dfp": dev_fp})
3059
+ mcp_url = f"{base}/mcp?{params}"
3060
+
3061
+ gemini_mcp_url = f"{base}/mcp"
3062
+
3043
3063
  _p()
3044
3064
  _ok(f"Agent Credentials Issued & Saved Locally: {_cy(name)}")
3045
- print(f" {_DM}Profile ID :{_RS} {_C}{profile_id}{_RS}")
3046
- print(f" {_DM}Client ID :{_RS} {_ye(d['client_id'])}")
3047
- print(f" {_DM}Client Secret :{_RS} {_W}{d['client_secret']}{_RS}")
3048
- print(f" {_DM}Expires At :{_RS} {_dim(d['expires_at'][:19].replace('T', ' '))} UTC ({ttl} days)")
3065
+ print(f" {_DM}Profile ID :{_RS} {_C}{profile_id}{_RS}")
3066
+ print(f" {_DM}Client ID :{_RS} {_ye(cid)}")
3067
+ print(f" {_DM}Client Secret :{_RS} {_W}{csec}{_RS}")
3068
+ print(f" {_DM}Google Gemini :{_RS} {_cy(gemini_mcp_url)} {_dim('(Standard OAuth 2.0)')}")
3069
+ print(f" {_DM}Cursor / Claude :{_RS} {_dim(mcp_url)}")
3070
+ print(f" {_DM}Expires At :{_RS} {_dim(d['expires_at'][:19].replace('T', ' '))} UTC ({ttl} days)")
3049
3071
  _p()
3050
- _info("To use in Cursor or Claude Desktop, add a Command MCP Server with:")
3072
+ print(" " + _C + "Claude Desktop / Cursor" + _RS + " " + _dim("(config.json)") + ":")
3073
+ claude_cfg = json.dumps({"mcpServers": {"akash": {"url": mcp_url}}}, indent=2)
3074
+ for c_line in claude_cfg.splitlines():
3075
+ print(" " + c_line)
3076
+ _p()
3077
+ _info("To run local worker or generate temporary share links:")
3051
3078
  if url:
3052
3079
  print(f" {_G}akash mcp serve --id {profile_id} --url {url}{_RS}")
3080
+ print(f" {_DM}akash mcp share {profile_id} --temp 30m --url {url}{_RS}")
3053
3081
  else:
3054
3082
  print(f" {_G}akash mcp serve --id {profile_id}{_RS}")
3083
+ print(f" {_DM}akash mcp share {profile_id} --temp 30m{_RS}")
3055
3084
  _p()
3056
3085
 
3057
3086
  @agent_app.command("requests")
@@ -3610,6 +3639,14 @@ def mcp_share(
3610
3639
 
3611
3640
  show_all = not codex and not claude
3612
3641
 
3642
+ if show_all:
3643
+ gemini_url = base + "/mcp"
3644
+ print(" " + _C + "For Google Gemini (Web & Extensions)" + _RS + ":")
3645
+ print(" " + _DM + "MCP Server URL : " + _RS + _cy(gemini_url))
3646
+ print(" " + _dim(" (Standard OAuth 2.0 with instant one-click approval)"))
3647
+ print(" " + _GR + "──────────────────────────────────────────────────" + _RS)
3648
+ _p()
3649
+
3613
3650
  if show_all or codex:
3614
3651
  print(" " + _C + "For Codex CLI / Desktop" + _RS + " " + _dim("(~/.codex/config.toml)") + ":")
3615
3652
  print(" " + _DM + "Option A: Same Device (Termux / Localhost)" + _RS)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: akashcli
3
- Version: 4.7.2
3
+ Version: 4.7.4
4
4
  Summary: Akash CLI — secure remote shell relay, file vault, and device management
5
5
  License-Expression: MIT
6
6
  Keywords: akash,cli,relay,remote-shell,vault
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "akashcli"
3
- version = "4.7.2"
3
+ version = "4.7.4"
4
4
  description = "Akash CLI — secure remote shell relay, file vault, and device management"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.9"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes