{"id":15107588,"url":"https://github.com/pharo-ide/telepharo","last_synced_at":"2026-04-06T06:04:48.273Z","repository":{"id":39917430,"uuid":"98872130","full_name":"pharo-ide/TelePharo","owner":"pharo-ide","description":"Tools to manage and develop remote Pharo images","archived":false,"fork":false,"pushed_at":"2022-12-23T13:10:41.000Z","size":210,"stargazers_count":42,"open_issues_count":5,"forks_count":9,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-01-30T17:11:14.886Z","etag":null,"topics":["ide","pharo","remote","telepharo"],"latest_commit_sha":null,"homepage":null,"language":"Smalltalk","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pharo-ide.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-07-31T09:29:59.000Z","updated_at":"2024-02-12T23:19:30.000Z","dependencies_parsed_at":"2023-01-30T18:31:10.105Z","dependency_job_id":null,"html_url":"https://github.com/pharo-ide/TelePharo","commit_stats":null,"previous_names":[],"tags_count":26,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pharo-ide%2FTelePharo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pharo-ide%2FTelePharo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pharo-ide%2FTelePharo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pharo-ide%2FTelePharo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pharo-ide","download_url":"https://codeload.github.com/pharo-ide/TelePharo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237769067,"owners_count":19363250,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ide","pharo","remote","telepharo"],"created_at":"2024-09-25T21:25:48.805Z","updated_at":"2025-10-23T02:31:20.129Z","avatar_url":"https://github.com/pharo-ide.png","language":"Smalltalk","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TelePharo\n\n[![GitHub release](https://img.shields.io/github/release/pharo-ide/TelePharo.svg)](https://github.com/pharo-ide/TelePharo/releases/latest)\n[![Unit Tests](https://github.com/pharo-ide/TelePharo/actions/workflows/tests.yml/badge.svg)](https://github.com/pharo-ide/TelePharo/actions/workflows/tests.yml)\n\n[![Pharo 10](https://img.shields.io/badge/Pharo-10-informational)](https://pharo.org)\n\nComplete toolset for remote development of Pharo images. It includes:\n\n- remote playground\n- remote browser\n- remote debugger\n- remote inspector\n- remote process browser\n\n## Server installation\nServer part of project should be installed on target image:\n```Smalltalk\nMetacello new\n  baseline: 'TelePharo';\n  repository: 'github://pharo-ide/TelePharo';\n  load: 'Server'.\n```\nThen server should be started on port where client image can connect:\n```Smalltalk\nTlpRemoteUIManager registerOnPort: 40423\n```\nImage can be saved with running server. Or you can use command line option to start image with server:\n```bash\n./pharo PharoServer.image remotePharo --startServerOnPort=40423\n```\n### Slow servers\nIn case when your remote machine is slow you can disable slow plugins of browser. For example Raspberry machines ~10x times slower then x86 computers and some code analysis can affect general performance of remote IDE. To optimize such scenarios evaluate following script on prepared server image:\n```Smalltalk\nClyNavigationEnvironment reset.\nClySystemEnvironmentPlugin disableSlowPlugins\n```\nOr you can always disable slow plugins from command line using extra option #disableSlowPlugins:\n```bash\n./pharo PharoServer.image remotePharo --startServerOnPort=40423 --disableSlowPlugins\n```\n## Client connection\nOn IDE image client part of project should be installed:\n```Smalltalk\nMetacello new\n  baseline: 'TelePharo';\n  repository: 'github://pharo-ide/TelePharo';\n  load: 'Client'.\n```\nAnd then you can connect Pharo to remote image:\n```Smalltalk\nremotePharo := TlpRemoteIDE connectTo: (TCPAddress ip: #[127 0 0 1] port: 40423)\n```\nIt registers local debugger and browser on remote image:\n\nAny error on remote image will open debugger on client image with remote process stack.\n\nAny browser request on remote image will open browser on client image with remote packages and classes.\n\nUser requests from server are redirected to client. Any confirm or inform requests from remote image will be shown on client. For example author name request will be shown on client image where user can type own name remotely.\n## Tools\nWith remotePharo instance you can open remote system browser, playground or process browser:\n```Smalltalk\nremotePharo openPlayground.\nremotePharo openBrowser.\nremotePharo openProcessBrowser\n```\nAnd you can evaluate remote scripts:\n```Smalltalk\nremotePharo evaluateAsync: [ [1/0] fork ].\nremotePharo evaluate: [ 1 + 2 ] \"==\u003e 3\".\nremotePharo evaluate: [ 0@0 corner: 2@3 ] \"==\u003e aSeamlessProxy on remote rectangle\".\n```\nFor details on scripting features look at [Seamless project](https://github.com/dionisiydk/Seamless) which is underlying communication layer of TelePharo.\n\nSome operations are not working remotely. For example #debugIt command and refactorings lead to errors. But in future they will be supported\n\n# Saving changes\nSave remote Pharo image using:\n```Smalltalk\nremotePharo saveImage\n```\nNotice that it will save image with running server. And when you will restart Pharo next time the IDE server will be running.\nYou can use command line option to stop the running server in that case:\n```bash\n./pharo PharoServer.image remotePharo --stopServer\n```\nIn many cases save image is not enough. You want keep produced remote changes in your project.\nFor this you will need import the remote code changes into your local environment:\n```Smalltalk\nremotePharo applyChangesToClient\n```\nAnd then commit them into code repository (using Iceberg for example).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpharo-ide%2Ftelepharo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpharo-ide%2Ftelepharo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpharo-ide%2Ftelepharo/lists"}