{"id":21707800,"url":"https://github.com/flightaware/tcl-ip-console","last_synced_at":"2026-02-17T16:01:52.573Z","repository":{"id":23235355,"uuid":"26592938","full_name":"flightaware/tcl-ip-console","owner":"flightaware","description":"provides telnet access to the Tcl interpreter of long-running, event-driven programs","archived":false,"fork":false,"pushed_at":"2018-11-06T22:41:35.000Z","size":6,"stargazers_count":5,"open_issues_count":0,"forks_count":1,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-10-11T00:05:51.727Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Tcl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/flightaware.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":"2014-11-13T15:02:38.000Z","updated_at":"2024-12-14T05:55:57.000Z","dependencies_parsed_at":"2022-07-23T22:01:57.544Z","dependency_job_id":null,"html_url":"https://github.com/flightaware/tcl-ip-console","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/flightaware/tcl-ip-console","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flightaware%2Ftcl-ip-console","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flightaware%2Ftcl-ip-console/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flightaware%2Ftcl-ip-console/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flightaware%2Ftcl-ip-console/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flightaware","download_url":"https://codeload.github.com/flightaware/tcl-ip-console/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flightaware%2Ftcl-ip-console/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29549211,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-17T14:33:00.708Z","status":"ssl_error","status_checked_at":"2026-02-17T14:32:58.657Z","response_time":100,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2024-11-25T22:19:18.801Z","updated_at":"2026-02-17T16:01:52.558Z","avatar_url":"https://github.com/flightaware.png","language":"Tcl","funding_links":[],"categories":[],"sub_categories":[],"readme":"tcl-ip-console\n---\n\nThe Tcl IP Console is an Itcl class that can generate a server socket on a specified TCP port of a machine and will accept connections on that port from localhost (127.0.0.1) only and execute whatever it receives from the socket in the Tcl interpreter and return whatever it receives from the Tcl interpreter back to the socket, along with the execution status, like \"ok\" or \"error\".\n\nThe Tcl program having the IP console added to it must principally use the Tcl event loop.  That is, the Tcl event loop needs to be running via \"vwait\" or that it is a Tk program or something for the IP console to work.\n\nUsage\n---\n\nAdd to your program something like...\n\n```\npackage require fa_console\n\nIpConsole console\nconsole setup_server -port 8888\n```\n\nAccessing\n---\n\nOnce your program is up and running, you can connect to the specified TCP port with nc, telnet or some other program, as in\n\n```\nnc localhost 8888\n```\n\nYou will receive a greeting from the program, something that includes the program name ($::argv0), something like\n\n```\n$ nc  localhost 8888\nconnect {foo.tcl - connect from 127.0.0.1 44088 - help for help}\nset forever true\nok true\n```\n\nUsing\n---\n\nWhatever you type will be evaled at the top level of the running Tcl interpreter and the results will be sent back to the connection, along with whether the thing worked OK or whether there was an error.\n\nFor instance...\n\n```\nxset foo bar\nerror {invalid command name \"xset\"}\n```\n\n...or...\n\n```\nset foo bar\nok bar\n```\n\nYou can poke around with stuff like \"info globals\", run procs from the command line and so forth.\n\nOne thing to note, though, \"puts $foo\" will not push the contents of the foo variable to your console session but will instead write it to whatever your program's standard output is pointed to.\n\nFor the above example if you want the contents of foo, use \"return $foo\" to get it sent to your console session.\n\nInteresting Tidbits\n---\n\nMultiple concurrent sessions are support.\n\nSince the IP console is an Itcl class, multiple IP consoles can be defined in a single program.  However, I don't know what that would be good for.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflightaware%2Ftcl-ip-console","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflightaware%2Ftcl-ip-console","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflightaware%2Ftcl-ip-console/lists"}