An extension machine suitable for use in a development tool system and configured to interoperate with a local development tool extension, "extension", which upon execution on the extension machine performs software development operations on local file contents , the extension machine comprising: a processor ; a memory in operable communication with the processor; a local extension host agent, "agent", which upon execution with the processor communicates with a remote development tool user interface renderer, "renderer", that resides on a developer machine external to the extension machine; a local extension host, "host", which is configured for operable communication with the agent and with the extension and with a local store which has a filesystem containing software development files, "files", ; wherein multiple files in the local store are identified in at least one place outside the extension machine by respective uniform resource identifiers, URI, file IDs , and those URI file IDs are mapped to filesystem paths for use in the extension to identify the files in order to obtain the file contents; wherein the local extension host agent, local extension host, local agent, local extension, and local store are each local to the extension machine and remote from the developer machine; wherein the renderer is further configured to specify in one or more of the inter-machine communications 212 one or more development processes to be spawned on the extension machine instead of the renderer spawning the one or more development processes on the developer machine; wherein the URI file IDs are mapped into a filesystem path file identification, "path file ID", of the software development file, and are accessed by the software development file in the extension machine store using the path file ID. a processor ; a memory in operable communication with the processor; a local extension host agent, "agent", which upon execution with the processor communicates with a remote development tool user interface renderer, "renderer", that resides on a developer machine external to the extension machine; a local extension host, "host", which is configured for operable communication with the agent and with the extension and with a local store which has a filesystem containing software development files, "files", ; wherein multiple files in the local store are identified in at least one place outside the extension machine by respective uniform resource identifiers, URI, file IDs , and those URI file IDs are mapped to filesystem paths for use in the extension to identify the files in order to obtain the file contents; wherein the local extension host agent, local extension host, local agent, local extension, and local store are each local to the extension machine and remote from the developer machine; wherein the renderer is further configured to specify in one or more of the inter-machine communications 212 one or more development processes to be spawned on the extension machine instead of the renderer spawning the one or more development processes on the developer machine; wherein the URI file IDs are mapped into a filesystem path file identification, "path file ID", of the software development file, and are accessed by the software development file in the extension machine store using the path file ID. <EOS>